python - flask 张贴到同一页

标签 python html flask

我有:

 from flask import Flask, render_template
import datetime
app = Flask(__name__)

@app.route("/")
def hello():
   now = datetime.datetime.now()
   timeString = now.strftime("%Y-%m-%d %H:%M")
   templateData = {
  'title' : 'HELLO!',
  'time': timeString
  }
 return render_template('main.html', **templateData)

if __name__ == "__main__":
app.run(host='0.0.0.0', port=80, debug=True)


和html:

<!DOCTYPE html>
 <head>
    <title>{{ title }}</title>
</head>
   <body>
  <h1>Hello, World!</h1>
  <h2>The date and time on the server is: {{ time }}</h2>
  </body>
</html>


在flask上可以创建一个按钮以在同一页面上发布flask函数吗?
谢谢

最佳答案

因此,您的表单代码可能看起来像这样(这只是一个示例):

<form method='POST' action="/">
        <p>username: <input type="text" name="username"/></p>
        <p>password: <input type="password" name='password'/></p>
        <p><input type="submit" value="Login" style="width: 100px; height: 100px;"/></p>
    </form>


action =“ ...”应该是您要发布到的路径。
因此,如果我们要发布到“ /”路径,则可以执行以下操作,并使用以下代码将其捕获到您的代码中:

@app.route('/', methods=['GET', 'POST'])
def hello():
   if request.method == 'POST':
       .... # Add whatever code you want to execute if it is a post request

   now = datetime.datetime.now()
   timeString = now.strftime("%Y-%m-%d %H:%M")
   templateData = {
  'title' : 'HELLO!',
  'time': timeString
  }
 return render_template('main.html', **templateData)


我们需要更改app.route部分,因为我们必须指定我们可以通过Get请求或Post请求到达此路由。我们可以使用if request.method =='POST'来检查它是否是一个Post请求:

希望这可以帮助。

关于python - flask 张贴到同一页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37211791/

相关文章:

python-3.x - 在没有 nginx 的情况下运行 Flask 应用程序

python - flask-restful 有一个 get/<id> 并在同一个类中用 json 发布

python - 如何使用pygal在一个图表中绘制多个图表?

css - 将 div 垂直放置在具有固定高度和宽度的父 div 上

html - 有没有办法告诉 Chrome 密码生成器网站密码策略?

html - 为什么我不能用伪选择器定位这个类?

Python:Flask uWSGI 线程在进行网络调用时停止

python - 在不删除定界符的情况下拆分正则表达式

python - 如何在 Django View 中运行命令行 python 脚本?

python - 正则表达式匹配大括号内的字符串