Flask post后 后台处理完成 传参更新页面?

用Flask写的界面 ,想要点击页面的上的 字符串,然后返回这个字符串给python,python处理完成后再返回给前端,显示在空白页面上,刚刚接触flask还不太明白,想请教一下要怎么做。

我想点击下方的代理,然后python处理好了之后,在右边空白处返回代理的详细信息。

clipboard.png

问题1:这个操作要怎么完成?
问题2:如果不在同一界面更新,我是不是要用url_for来为每一个 代理字符串构造一个界面,要怎么完成?

html视图的代码

// 想要把代理的详细信息显示在同一页面 <div id="section_2"></div?的地方

<div id="section_header">
    <h3 align="right"> Current date/time: {{ current_time | datetimefilter }}</h3>
</div>
<div id="section_1">

    <P align="right">代理 : &nbsp; &nbsp; 分数</P>
    {% for proxy in IP_PORT %}
    <p align="right"><a href="#">{{proxy}} &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; {{IP_PORT[proxy]}}</a></p>
    {% endfor %}

</div>
<div id="section_2">


</div>


</div>

这里是python里面的代码

//数据是从Redis里面取出来的,处理代理的函数在另一个文件

@app.route('/proxypool_list')    
def proxypool_list():
redis = RedisClient()
proxy_list = redis.list()
proxy_list = sorted(proxy_list, key=lambda x : x[1],reverse=True)

IP = [proxy_list[i][0] for i in range(0,len(proxy_list))]
PORT = [proxy_list[i][1] for i in range(0,len(proxy_list))]
IP_PORT = dict(zip(IP, PORT))

return render_template(
    'proxypool_list.html',IP_PORT=IP_PORT,current_time=current_time)

阅读 4.1k
1 个回答

根据你的需求描述,其实需要来做两步:

  1. 点击页面的上的 字符串,然后返回这个字符串给python。 你可以在你的页面上设置一个 url_for() 链接,点击之后,需要使用你自定义的 flask views 视图函数。
  2. python处理完成后再返回给前端,显示在空白页面上 。 这一步,我首先弄明白一个定义,显示在空白页面上,此处我理解为是一个全新的空白页面。你可以使用你的 flask views 视图函数,通过 render_template() 返回一个全新页面即可。
  3. 后来仔细看了一下,你的需求是在 右边空白处返回代理的详细信息。这就是需要实现局部刷新功能了。这需要你用到 ajax 的相关功能。你得熟悉 JavaScript 的相关特性了。
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题