Python 使用 Flask框架记录
Python 使用 Flask框架记录
1、安装Flask
Flask依赖两个外部库,Werkzeug和Jinja2,Werkzeug是一个WSGI(服务器网关接口)。Jinja2时负责渲染模板。在安装Flask之前需要安装这俩个外部库,最简单的安装方式是使用Vritualenv创建虚拟环境。
1.1、安装虚拟环境
pip install virtualenv
安装完成后 ,检测其的版本
virtualenv --version
1.2 、创建虚拟环境
virtualenv venv
1.3 、激活虚拟环境
venv\Scripts\activate
1.4、安装Flask
pip install flask
查看其安装的包
pip list --format columns
至此已经安装好了Flask以及其需要的依赖库。
2、使用Flask
2.1、输出一个 hello word
from flask import Flask
app = Flask(__name__) #创建flask对象
@app.route('/')
def hello_world():
return "hello world"
if __name__ == '__main__':
app.run()
2.2、开启调试模式
又两种方式开启调试模式
app.debug = True
app.run
或者
app.run(debug=True)
2.3、flask 的路由
在Flask中提供@app.route()修饰器,会把修饰的函数注册成为路由
2.3.1、给url 添加变量部分
@app.route('/user/<username>')
def show_username(username):
return 'User %s' % username
# 规则可以用<converter:variable_name>
# 定义可变参数的类型 定义参数是整形
@app.route('/post/<int:post_id>')
def show_post(post_id):
return 'post_id %s' % post_id
2.3.2、构造url
Flask可以匹配url,也可构造url即为生成一个url,可以用url_for()来给指定的函数构造url。此方法可以返回show_post函数 url的信息
@app.route('/url/')
def get_url():
return url_for('show_post', post_id=2)
2.3、设置Http的方法
在装饰其上,使用 methon=[]可以设置http请求的方法
@app.route('/login', methods=['GET', 'POST'])
3、静态文件&渲染模板
在项目中创建一个static的文件夹 ,将静态文件放到该文件夹中,在html中使用url_for生成路径。
flask会在模板文件中找html,一般会在templates文件夹下去找。
相关代码如下
from flask import Flask, url_for, request, render_template
app = Flask(__name__) #创建flask对象
@app.route('/')
def hello_world():
return render_template('index.html')
if __name__ == '__main__':
app.run(debug=True)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<link rel="stylesheet" href="{{ url_for('static',filename='style.css') }}">
</head>
<body>
<h1 id="eee">sss</h1>
</body>
</html>
#eee{
color:red;
}
4、Jinja2模板渲染语言
{{name}} 获取name的值
{{mylist[1]}}获取集合中的值
{{myobj.some()}} 获取方法返回值
{% if %} -- {% else %}--{% endif %} 控制语句
{% for comment in comments %} --{% endfor %} 循环语句
Jinja2中还提供一些过滤器,具体请查。
Jinja2可以继承模板文件用于多出使用相同的代码。