python+flask开发一个网页表单,如何在提交之前调用一段python代码

python+flask开发一个网页表单,如何在提交之前调用一段python代码,第1张

既然是Python代码为什么不让先提交呢,你可以先接收提交,再执行特定代码后以决定要不要继续嘛:

@app.route('/test/',methods=['GET','POST'])

def test():

if request.method == 'POST':

      # 此处调用你定义好的,要执行的函数func,假定返回True或False

     if func():

    # 某 *** 作

      else:

    # 某 *** 作

else:

    # GET时 *** 作

    return render_template('test.html')

使用flask,那么我指定action发送给一个router,

from flask import Flask

app = Flask(__name__)

@app.route('/')

def hello_world():

return 'Hello World!'

if __name__ == '__main__':

app.run()

把它保存成 hello.py (或者类似的文件),然后用 Python 解释器运行它。确保你的应用不叫做 flask.py, 因为这会与 Flask 本身冲突。

$ python hello.py

* Running on http://127.0.0.1:5000/

现在浏览 http://127.0.0.1:5000/,你会看到你的 hello world 问候。

那么这段代码做了什么?

首先我们导入了类 Flask 。这个类的实例化将会是我们的 WSGI 应用。第一个参数是应用模块的名称。 如果你使用的是单一的模块(就如本例),第一个参数应该使用__name__。因为取决于如果它以单独应用启动或作为模块导入, 名称将会不同 ('__main__' 对应于实际导入的名称)。获取更多的信息,请阅读 Flask 的文档。

接着,我们创建一个该类的实例。我们传递给它模块或包的名称。这样 Flask 才会知道去哪里寻找模板、静态文件等等。

我们使用装饰器 route() 告诉 Flask 哪个 URL 才能触发我们的函数。

定义一个函数,该函数名也是用来给特定函数生成 URLs,并且返回我们想要显示在用户浏览器上的信息。

最后我们用函数 run() 启动本地服务器来运行我们的应用。if __name__ =='__main__': 确保服务器只会在该脚本被 Python 解释器直接执行的时候才会运行,而不是作为模块导入的时候。

请按 control-C 来停止服务器。

外部可见服务器

当你运行服务器,你会注意到它只能从你自己的计算机上访问,网络中其它任何的地方都不能访问。 这是因为默认情况下,调试模式,应用中的一个用户可以执行你计算机上的任意 Python 代码。

如果你关闭 debug 或者信任你所在网络上的用户,你可以让你的服务器对外可用,只要简单地改变方法 run() 的调用像如下这样:

app.run(host='0.0.0.0')

这让你的 *** 作系统去监听所有公开的 IP。

调试模式

run() 方法是十分适用于启动一个本地开发服务器,但是你需要在修改代码后手动重启服务器。 这样做并不好,Flask 能做得更好。如果启用了调试支持,在代码修改的时候服务器能够自动加载, 并且如果发生错误,它会提供一个有用的调试器。

有两种方式开启调式模式。一种是在应用对象上设置标志位:

app.debug = True

app.run()

或者作为 run 的一个参数传入:

app.run(debug=True)

两种方法效果是一样的。

Attention

尽管交互式调试器不能在分叉( forking )环境上工作(这使得它几乎不可能在生产服务器上使用), 它依然允许执行任意代码。这使它成为一个巨大的安全风险,因此它 绝对不能用于生成环境。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11863688.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-19
下一篇 2023-05-19

发表评论

登录后才能评论

评论列表(0条)

保存