簡體   English   中英

Python如何將帶有HTML列表的變量名分配給(方法?)

[英]Python How do I assigning a variable name with an HTML list to a (method?)

請原諒我措辭不佳的標題,因為我仍在學習Python。 問題是在我的Python腳本中,我希望將.hot替換為一個名為instance的變量,該變量具有從HTML文件中選擇的選項。 不幸的是,由於某種原因,我還不了解,我不能只用“ instance”或str(instance())代替“ hot”。 如果有人可以幫助我提供解決方案,那就太好了!

謝謝

這是有問題的Python腳本

@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)

這是我的HTML模板。

<!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 %}

如果我對您的問題理解正確,則您想要執行以下操作:

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

instancenew應該調用

reddit.subreddit(版(Subreddit))。新(極限= INT(NUM))

gettattr獲取傳遞給它的第一個參數的屬性,該屬性用第二個屬性命名。 因此,您將獲得instance變量中命名的函數(希望是您要嘗試調用的函數)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM