Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/365.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python如何将带有HTML列表的变量名分配给(方法?)_Python_Html_Flask_Reddit_Praw - Fatal编程技术网

Python如何将带有HTML列表的变量名分配给(方法?)

Python如何将带有HTML列表的变量名分配给(方法?),python,html,flask,reddit,praw,Python,Html,Flask,Reddit,Praw,请原谅我拙劣的标题,因为我还在学习Python。 问题是,在我的Python脚本中,我希望.hot被一个名为instance的变量替换,该变量具有从HTML文件中选择的选项。不幸的是,由于某些原因,我还不明白,我不能用“instance”或str(instance())替换“hot”。如果有人能帮我解决这个问题,那就太好了 多谢各位 下面是讨论中的Python脚本 @app.route('/', methods=['POST']) def index_post(): subreddit

请原谅我拙劣的标题,因为我还在学习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 %}

子Reddit名称:
实例:
有争议的
镀金
热的
新的
上升
顶部
限制:
{news%%中项目的%s}
{{item}}

{%endfor%}
如果我没弄错你的问题,你可以这样做:

redditFunction = getattr(reddit.subreddit(subreddit), instance)
for submission in redditFunction(limit=int(num)):
    ...
实例
新建时
应调用

subreddit(subreddit).new(limit=int(num))

getAttr
获取传递给它的第一个参数的属性,该参数使用第二个属性命名。因此,您将获得在
实例
变量中命名的函数,它(希望)就是您试图调用的函数