一个简单的flask应用
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一个简单的flask应用相关的知识,希望对你有一定的参考价值。
一个简单的flask应用,文件名hello.py
from flask import Flask app = Flask(__name__) @app.route(‘/‘) def hello_world(): return ‘Hello World!‘ if __name__ == ‘__main__‘: app.run()
1.引入Flask类,Flask类实现了一个WSGI应用;
2.app是Flask的实例,它接收包或者模块的名字作为参数,但一般都是传递__name__;
3.app.route装饰器会将URL和执行视图函数的关系保存到app.url_map属性上;
4.内置变量__name__判断表示import该模块不会执行(__name__执行该程序时候为__main__,import时候为模块文件名),
执行app.run就可以启动服务了,默认Flask只监听虚拟机的本地127.0.0.1这个地址,端口为5000。
ps:1.调试模式
虽然 run() 方法适用于启动本地的开发服务器。如果你启用了调试支持,服务器会在代码修改后自动重新载入,并在发生错误时提供一个相当有用的调试器。有两种途径来启用调试模式。
一种是直接在应用对象上设置:
app.debug = True
app.run()
另一种是作为 run 方法的一个参数传入:
app.run(debug=True)
2.路由
route()装饰器把一个视图函数绑定到一个URL上,也可以构造动态的URL或者一个路由上面绑定多个URL。
2.1.变量规则
在给URL绑定动态变量时,动态的字段以<variable_name>,这部分作为命名参数部分传递到函数。规则可以用 <converter:variable_name> 指定一个可选的转换器。
app.route(‘app/<username>‘) def show_user_info(username): return "User %s" % username #User对象 app.route(‘app/<int:userid>‘): return "User %s" % userid
转换器有下面几种:
int 接受整数
float 同int,但是接受浮点数
path和默认的相似,但是接受斜线
2.2.唯一 URL / 重定向行为
Flask 的 URL 规则基于 Werkzeug 的路由模块。这个模块背后的思想是基于 Apache 以及更早的 HTTP 服务器主张的先例,保证优雅且唯一的 URL。
2.3 构造 URL
url_for() 来给指定的函数构造 URL。它接受函数名作为第一个参数,也接受对应 URL 规则的变量部分的命名参数。未知变量部分会添加到 URL 末尾作为查询参数。
2.4http方法
app.route("app/index",methods=[‘GET‘,‘POST‘]) def login(): if request.method==‘POST‘: login() else: show_login_error()
默认情况下,路由只回应 GET 请求,但是通过 route() 装饰器传递 methods 参数可以改变这个行为。GET:浏览器告知服务器:只 获取 页面上的信息并发给我。这是最常用的方法。POST:浏览器告诉服务器:想在 URL 上 发布 新信息。并且,服务器必须确保 数据已存储且仅存储一次。这是 html 表单通常发送数据到服务器的方法。
以上是关于一个简单的flask应用的主要内容,如果未能解决你的问题,请参考以下文章