Flask基础
Flask与Django区别
Flask - 微框架、灵活、扩展性强、按需组合
Django - 大而全、开箱即用、方便、灵活稍差
Flask主要包含
* Web服务器网关接口 Werkzeug
(WSGI Web Server Gateway Interface)
* 模板系统 Jinja2
其他包可自行扩展
安装和运行 (虚拟环境)
mkdir src
python3 -m venv venv
source venv/bin/activate
pip install flask
简单的例子 hello.py
from flask import Flask
app = Flask(__name__)
@app.route('/')
def index():
return '<h1>你好未来</h1>'
@app.route('/user/<name>')
def user(name):
return '<h2>你好啊, %s</h2>' % name
if __name__ == '__main__':
app.run(debug=True)
# app.run(debug=True, host='0.0.0.0', port=5001)
程序上下文和请求上下文 context
Flask使用上下文让特定的变量只在一个线程中全局可访问,与此同时不会干扰其他其他线程。为了视图访问方便,Flask使用上下文临时将某些对象变为在一个请求线程中全局可访问
变量名 | 上下文 | 说明 |
---|---|---|
current_app | 程序上下文 | 当前激活程序的实例 |
g | 程序上下文 | 处理请求时用作临时存储的对象,每次的请求都会重设这个变量 |
request | 请求上下文 | 请求对象,封装了客户端发出的HTTP请求中的内容 |
session | 请求上下文 | 用户会话,用于存储请求之间需要**”记住“**的值的词典 |
from flask import request
@app.route('/getip')
def getip():
ip = request.remote_addr
user_agent = request.he