1、定义
Flask是一个Python编写的Web 微框架,让我们可以使用Python语言快速实现一个网站或Web服务。
中文官网
2、初步上手
1、安装flask
pip3 install flask
2、创建flask应用
# -*- coding = utf-8 -*-
# @Time : 2024/1/28 23:02
# @Author: Frank
# @File: main.py
# @Software: PyCharm
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
return 'hello world'
if __name__ == '__main__':
app.run()
代码解析:
1、首先我们导入了 Flask 类。 该类的实例将会成为我们的 WSGI 应用。
2、接着我们创建一个该类的实例。第一个参数是应用模块或者包的名称。如果你使用 一个单一模块(就像本例),那么应当使用 name ,因为名称会根据这个 模块是按应用方式使用还是作为一个模块导入而发生变化(可能是 ‘main’ , 也可能是实际导入的名称)。这个参数是必需的,这样 Flask 才能知道在哪里可以 找到模板和静态文件等东西
3、然后我们使用 route() 装饰器来告诉 Flask 触发函数的 URL 。
4、函数名称被用于生成相关联的 URL 。函数最后返回需要在用户浏览器中显示的信息。
直接启动,访问下面的地址,则可以看到hello world
3、绑定端口启动
app.run(host='127.0.0.1', port=8080, debug=True)
3、Flask路由
@app.route('/index')
def hello_index():
return 'welcome to my flask app'
4、Flask变量规则
通过向规则参数添加变量部分,可以动态构建URL。此变量部分标记为<converter:variable_name>
。它作为关键字参数传递给与规则相关联的函数。
在以下示例中,route()装饰器的规则参数包含附加到URL'/hello'
的<name>
。
@app.route('/hello/<name>')
def hello_name(name):
return 'hi %s welcome to my flask app' % name
除了默认字符串变量部分之外,还可以使用以下转换器构建规则:
转换器 | 描述 |
---|---|
string | (缺省值) 接受任何不包含斜杠的文本 |
int | 接受正整数 |
float | 接受正浮点数 |
path | 类似 string ,但可以包含斜杠 |
uuid | 接受 UUID 字符串 |
@app.route('/post/<int:post_id>')
def show_post(post_id):
# show the post with the given id, the id is an integer
return 'Post %d' % post_id
@app.route('/path/<path:subpath>')
def show_subpath(subpath):
# show the subpath after /path/
return 'Subpath %s' % subpath
4.1、唯一的URL / 重定向行为
@app.route('/projects/')
def projects():
return 'The project page'
@app.route('/about')
def about():
return 'The about page'
projects 的 URL 是中规中矩的,尾部有一个斜杠,看起来就如同一个文件夹。 访问一个没有斜杠结尾的 URL 时 Flask 会自动进行重定向,帮你在尾部加上一个斜杠。
about 的 URL 没有尾部斜杠,因此其行为表现与一个文件类似。如果访问这个 URL 时添加了尾部斜杠就会得到一个 404 错误。这样可以保持 URL 唯一,并帮助 搜索引擎避免