文章目录
基本介绍
- Flask 是一个使用 Python 编写的轻量级 Web 应用程序框架。
- Flask基于Werkzeug WSGI工具包和Jinja2模板引擎。
- WSGI:Web Server Gateway Interface,已被用作Python Web应用程序开发的标准。 WSGI是Web服务器和Web应用程序之间通用接口的规范。
- Werkzeug:它是一个WSGI工具包,它实现了请求,响应对象和实用函数。
- jinja2:jinja2是Python的一个流行的模板引擎。Web模板系统将模板与特定数据源组合以呈现动态网页。
基本程序结构
# Flask类的一个对象是我们的WSGI应用程序。
from flask import Flask
# Flask类的构造函数使用当前模块(__name __)的名称作为参数。
app = Flask(__name__)
# '/ ' URL与hello_world()函数绑定。
@app.route('/')
def hello_world():
return 'Hello World’
if __name__ == '__main__':
app.run() #在本地开发服务器上运行应用程序。
-
Flask类的
app.route(rule, options)
是一个装饰器,它告诉应用程序哪个URL应该调用相关的函数。
rule 参数表示与该函数的URL绑定。
options 是要转发给基础Rule对象的参数列表。 -
app.run(host, port, debug, options)
:所有参数都是可选的
host:要监听的主机名。 默认为127.0.0.1(localhost)。
port:默认值为5000
debug:默认为false。 如果设置为true,则提供调试信息
options:要转发到底层的Werkzeug服务器。 -
调试模式
在程序开发过程中,为避免每次修改代码重启服务器,启用调试模式,如果代码更改,服务器将自行重新加载。
Flask 1.0 版本不再支持之前的FLASK_ENV 环境变量了, 在pycharm中点击run,选择edit configuration, 勾选FlASK_DEBUG,然后接可以开启调试模式了
-
运行测试
Flask 路由
- 现代Web框架使用路由技术来帮助用户记住应用程序URL。可以直接访问所需的页面,而无需从主页导航。
- Flask中的route()装饰器用于将URL绑定到函数。例如:将
hello
与hello_world函数
绑定
@app.route(‘/hello’) //通过路由绑定函数
def hello_world():
return ‘hello world’
- application对象的add_url_rule()函数用于将URL与函数绑定,与上面方法相似
def hello_world():
return ‘hello world’
app.add_url_rule(‘/’, ‘hello’, hello_world)
Flask 变量规则
- 通过向规则参数添加变量部分,可以动态构建URL。此变量部分标记为
<variable-name>
,它作为关键字参数传递给与规则相关联的函数。
# 打开浏览器并输入URL http://127.0.0.1:5000/hello/test
from flask import Flask
app = Flask(__name__)
@app.route('/hello/<name>')
def hello_name(name):
return 'Hello %s!' % name
if __name__ == '__main__':
app.run(debug = True)
- 默认字符串变量部分之外,还可以使用以下转换器构建规则:
@app.route('/blog/<int:postID>')
def show_blog(postID):
return 'Blog Number %d' % postID
@app.route('/rev/<float:revNo>')
def revision(revNo):
return 'Revision Number %f' % revNo
Flask URL构建
- url_for()函数接受函数的名称作为第一个参数,以及一个或多个关键字参数,每个参数对应于URL的变量部分。
from flask import Flask, re