廊坊网站建设咨询青橙网络,手机怎么建自己的网站,dedecms关闭网站,h5官网入口1. Flask 是什么#xff1f;
Flask 是一个 微框架#xff08;Microframework#xff09;#xff0c;特点包括#xff1a;
轻量灵活#xff1a;核心仅包含路由和模板引擎#xff0c;其他功能通过扩展实现易于学习#xff1a;代码直观#xff0c;适合快速开发小型应用…1. Flask 是什么
Flask 是一个 微框架Microframework特点包括
轻量灵活核心仅包含路由和模板引擎其他功能通过扩展实现易于学习代码直观适合快速开发小型应用和 API高度可定制不强制项目结构可自由选择组件
2. 核心组件
(1) 最小应用示例
from flask import Flask
app Flask(__name__)app.route(/)
def hello():return Hello World!if __name__ __main__:app.run(debugTrue)
路由app.route() 装饰器定义 URL开发服务器app.run() 启动调试模式
(2) 路由与变量规则
app.route(/user/username)
def show_user(username):return fUser: {username}app.route(/post/int:post_id)
def show_post(post_id):return fPost ID: {post_id}
转换器int:var、float:var、path:var
(3) 请求与响应
from flask import request, jsonifyapp.route(/login, methods[GET, POST])
def login():if request.method POST:return jsonify({status: success})else:return render_template(login.html)
请求对象request.args (GET)、request.form (POST)响应对象jsonify() 返回 JSON
(4) 模板渲染 (Jinja2)
from flask import render_templateapp.route(/hello/name)
def hello(name):return render_template(hello.html, namename)
!-- templates/hello.html --
h1Hello {{ name }}!/h1
自动转义防 XSS 攻击继承机制
{% extends base.html %}
{% block content %}...{% endblock %}
3. 关键扩展
扩展名用途安装命令Flask-SQLAlchemyORM 支持pip install flask-sqlalchemyFlask-WTF表单处理pip install flask-wtfFlask-Login用户认证pip install flask-loginFlask-RESTful构建 REST APIpip install flask-restful
数据库示例 (SQLAlchemy)
from flask_sqlalchemy import SQLAlchemyapp.config[SQLALCHEMY_DATABASE_URI] sqlite:///test.db
db SQLAlchemy(app)class User(db.Model):id db.Column(db.Integer, primary_keyTrue)username db.Column(db.String(80), uniqueTrue)app.route(/add_user)
def add_user():user User(usernameadmin)db.session.add(user)db.session.commit()return User added!
4. 项目结构推荐
myflaskapp/
├── app/
│ ├── templates/ # HTML 模板
│ ├── static/ # CSS/JS/图片
│ ├── __init__.py # 工厂模式初始化
│ ├── models.py # 数据模型
│ ├── routes.py # 视图路由
│ └── forms.py # 表单定义
├── config.py # 配置文件
└── requirements.txt # 依赖列表
5. Flask vs Django
特性FlaskDjango定位微框架灵活轻量全栈框架功能齐全学习曲线简单较陡峭ORM需扩展SQLAlchemy自带Django ORMAdmin 后台需扩展Flask-Admin自带适用场景API/微服务/快速原型企业级应用/内容管理系统项目结构自由定义强制约定
6. 快速启动
# 安装
pip install flask# 最小应用 (app.py)
from flask import Flask
app Flask(__name__)app.route(/)
def home():return Hello Flask!if __name__ __main__:app.run(debugTrue)# 运行
python app.py
访问 http://localhost:5000
7. 最佳实践
工厂模式延迟创建应用实例
# app/__init__.py
def create_app(config):app Flask(__name__)app.config.from_object(config)return app
蓝图Blueprint模块化路由
from flask import Blueprint
auth Blueprint(auth, __name__)auth.route(/login)
def login(): ...
环境配置
# config.py
class Config:SECRET_KEY os.environ.get(SECRET_KEY) or hard-to-guessSQLALCHEMY_TRACK_MODIFICATIONS False
生产部署 WSGI 服务器Gunicorn Nginx静态文件flask collectstatic
8. 常见扩展推荐
数据库Flask-SQLAlchemy, Flask-Migrate表单Flask-WTF认证Flask-Login, Flask-JWTAPIFlask-RESTful, Flask-APIs后台Flask-Admin测试pytest-flask
Flask 的哲学是 微核扩展适合希望从底层构建应用的开发者。建议从官方快速入门https://flask.palletsprojects.com/开始实践