2017-07-15 4 views
0

私はまだPythonを学んでいるように私の貧弱な言葉のタイトルを許してください。 問題は私のPythonスクリプトでは、.hotが、HTMLファイルからオプションの選択肢を持つinstanceという変数に置き換えられるようにしたいということです。残念ながら、何らかの理由で私がまだ理解していない、私は 'hot'を 'instance'またはstr(instance())に置き換えることはできません。誰かが私に偉大な解決策を手伝うことができたら!Pythonどのように(メソッド?)にHTMLリストを持つ変数名を割り当てるのですか?

はここ

は、Pythonスクリプトは、ここに私のHTMLテンプレートがある質問

@app.route('/', methods=['POST']) 
def index_post(): 
    subreddit = request.form['subreddit'] 
    instance = request.form['instance'] 
    num = request.form['limit'] 
    news = [] 
    i = 0 
    for submission in reddit.subreddit(subreddit).hot(limit=int(num)): 
     i += 1 
     news.append(str(i) + '. ' + submission.title) 
    return render_template("index.html", news=news) 

であるありがとう。

<!doctype html> 

<form action="." method="POST"> 
    Subreddit name: 
    <input type="text" name="subreddit" placeholder="Topic"> 

    Instance: 
    <select name="instance"> 
     <option value="controversial">Controversial</option> 
     <option value="gilded">Gilded</option> 
     <option value="hot">Hot</option> 
     <option value="new">New</option> 
     <option value="rising">Rising</option> 
     <option value="top">Top</option> 
    </select> 

    Limit: 
    <input type="number" name="limit"> 
    <input type="submit" value="Search"> 
</form> 

{% for item in news %} 
    <p> {{item}} </p> 
{% endfor %} 

答えて

0

私は右のあなたの質問を理解していれば、あなたはこのような何かをしたい:instancenewとき

redditFunction = getattr(reddit.subreddit(subreddit), instance) 
for submission in redditFunction(limit=int(num)): 
    ... 

これは

reddit.subreddit(subreddit).new(限度を呼び出す必要があります= int(num))

gettattrは、2番目の属性で指定された最初の引数の属性を取得します。だから、instance変数に名前が付けられた関数が呼び出されます(うまくいけば、あなたが呼び出す関数です)。

+0

私はそれが期待どおりに動作していただきありがとうございました! – FsimulatorX

関連する問題