Flask依赖两个外部库,Werkzeug和Jinja2,Werkzeug是一个WSGI(服务器网关接口)。Jinja2时负责渲染模板。在安装Flask之前需要安装这俩个外部库,最简单的安装方式是使用Vritualenv创建虚拟环境。
pip install virtualenv
安装完成后 ,检测其的版本
virtualenv --version
virtualenv venv
venv\Scripts\activate
pip install flask
查看其安装的包
pip list --format columns
from flask import Flask
app = Flask(__name__) #创建flask对象
@app.route('/')
def hello_world():
return "hello world"
if __name__ == '__main__':
app.run()
又两种方式开启调试模式
app.debug = True
app.run
或者
app.run(debug=True)
在Flask中提供@app.route()修饰器,会把修饰的函数注册成为路由
@app.route('/user/')
def show_username(username):
return 'User %s' % username
# 规则可以用
# 定义可变参数的类型 定义参数是整形
@app.route('/post/')
def show_post(post_id):
return 'post_id %s' % post_id
Flask可以匹配url,也可构造url即为生成一个url,可以用url_for()来给指定的函数构造url。此方法可以返回show_post函数 url的信息
@app.route('/url/')
def get_url():
return url_for('show_post', post_id=2)
在装饰其上,使用 methon=[]可以设置http请求的方法
@app.route('/login', methods=['GET', 'POST'])
在项目中创建一个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)
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Titletitle>
<link rel="stylesheet" href="{{ url_for('static',filename='style.css') }}">
head>
<body>
<h1 id="eee">sssh1>
body>
html>
#eee{
color:red;
}
{{name}} 获取name的值
{{mylist[1]}}获取集合中的值
{{myobj.some()}} 获取方法返回值
{% if %} -- {% else %}--{% endif %} 控制语句
{% for comment in comments %} --{% endfor %} 循环语句
Jinja2中还提供一些过滤器,具体请查。
Jinja2可以继承模板文件用于多出使用相同的代码。