Flask的知识点总结
以下是一篇关于 Flask 知识点的博文总结,包含代码示例,涵盖了 Flask 的主要知识点:
Flask 知识点全面总结
Flask 是一个用 Python 编写的轻量级 Web 应用框架,以其简洁和灵活性而著称,非常适合开发小型至中型的 Web 应用。以下是 Flask 的详细知识点总结:
一、安装与启动
1. 安装 Flask
使用 pip 安装 Flask:
pip install Flask
2. 创建 Flask 应用
创建一个简单的 Flask 应用:
from flask import Flask
app = Flask(__name__)
@app.route('/')
def home():
return 'Hello, Flask!'
if __name__ == '__main__':
app.run(debug=True)
-
Flask(__name__)
:创建一个 Flask 应用实例。 -
@app.route('/')
:定义路由,将 URL/
映射到home
函数。 -
app.run(debug=True)
:启动应用,开启调试模式。
3. 运行应用
使用 flask run
或 app.run()
命令启动服务器。
二、路由
1. 基本路由
使用 @app.route()
装饰器定义路由:
@app.route('/about')
def about():
return 'This is the About page.'
2. 动态路由
支持变量规则,例如:
@app.route('/user/<username>')
def show_user_profile(username):
return f'User {username}'
3. HTTP 方法
支持多种 HTTP 方法,例如:
@app.route('/submit', methods=['GET', 'POST'])
def submit():
if request.method == 'POST':
name = request.form['name']
return f'Submitted name: {name}'
else:
return 'Please submit the form.'
三、请求与响应
1. 请求对象
通过 request
对象访问请求数据:
from flask import request
@app.route('/submit', methods=['POST'])
def submit():
name = request.form['name']
return f'Submitted name: {name}'
2. 响应对象
视图函数返回值自动转换为响应对象,也可以手动创建响应对象:
from flask import make_response
@app.route('/set_cookie')
def set_cookie():
resp = make_response('Set cookie')
resp.set_cookie('username', 'the_username')
return resp
四、模板渲染
1. 使用 render_template()
Flask 集成 Jinja2 模板引擎,用于生成动态 HTML 页面:
from flask import render_template
@app.route('/template')
def template():
name = 'Alice'
return render_template('hello.html', name=name)
hello.html
模板文件示例:
<!doctype html>
<html>
<head><title>Hello</title></head>
<body>
<h1>Hello, {{ name }}!</h1>
</body>
</html>
五、会话管理
1. 使用 session
对象
使用 session
对象跨请求存储信息:
from flask import session
@app.route('/login', methods=['POST'])
def login():
session['username'] = request.form['username']
return 'Logged in'
六、蓝图 (Blueprint)
1. 创建蓝图
使用蓝图实现应用的模块化:
from flask import Blueprint
bp = Blueprint('main', __name__)
@bp.route('/')
def index():
return 'Main page'
2. 注册蓝图
在应用中注册蓝图:
from flask import Flask
from blueprint import bp
app = Flask(__name__)
app.register_blueprint(bp)
七、静态文件
通过 url_for('static', filename='...')
提供静态文件:
<link rel="stylesheet" type="text/css" href="{{ url_for('static', filename='style.css') }}">
八、错误处理
1. 注册错误处理器
注册错误处理器以自定义错误页面:
@app.errorhandler(404)
def page_not_found(error):
return render_template('404.html'), 404
九、安全性
1. 自动转义 HTML
Flask 自动转义 HTML 以防止 XSS 攻击。
2. 手动转义
使用 escape()
函数手动转义用户输入:
from flask import escape
@app.route('/escape')
def escape_example():
text = request.args.get('text')
return f'Escaped text: {escape(text)}'
十、部署
可以部署在外部服务器上,使用 --host=0.0.0.0
选项:
flask run --host=0.0.0.0
十一、调试模式
使用 --debug
选项启动应用,提供错误调试信息:
bash复制
flask run --debug
以上是 Flask 的主要知识点总结,希望对你有所帮助。Flask 的灵活性和简洁性使其成为开发中小型 Web 应用的理想选择。