Flask必备基础

Flask 是一个轻量级的 Python Web 框架,以简洁和灵活性著称。

在这里插入图片描述


1. Flask 核心特点

  • 轻量级:核心功能简单,通过扩展实现复杂需求。
  • 灵活:开发者可自由选择组件(如数据库、模板引擎)。
  • WSGI 兼容:基于 Werkzeug WSGI 工具库。
  • 开发友好:内置调试器和开发服务器。

2. 安装 Flask

pip install flask

3. 基本应用结构

from flask import Flask
app = Flask(__name__)

@app.route('/')
def hello():
    return 'Hello, World!'

if __name__ == '__main__':
    app.run(debug=True)  # 开启调试模式

4. 核心概念

路由(Routing)
  • 定义 URL 到视图函数的映射:
    @app.route('/user/<username>')
    def show_user(username):
        return f'User: {username}'
    
    • 支持变量规则(如 <int:id><path:subpath>)。
视图函数
  • 处理请求并返回响应(字符串、HTML、JSON 等)。
模板引擎(Jinja2)
  • 渲染动态 HTML:
    from flask import render_template
    
    @app.route('/template')
    def template_demo():
        return render_template('index.html', name='Alice')
    
静态文件
  • 默认存储在 static 目录,通过 /static/filename 访问。

5. 请求与响应

获取请求数据
from flask import request

@app.route('/login', methods=['GET', 'POST'])
def login():
    if request.method == 'POST':
        username = request.form['username']
    else:
        username = request.args.get('username')
    return f'User: {username}'
返回响应
  • 可自定义状态码、头部:
    return 'Not Found', 404, {'Header': 'Value'}
    
重定向与 URL 生成
from flask import redirect, url_for

@app.route('/redirect')
def redirect_example():
    return redirect(url_for('hello'))  # 重定向到 hello 视图

6. 数据库集成

  • 常用扩展Flask-SQLAlchemy(ORM)、Flask-Migrate(数据库迁移)。
  • 示例配置:
    app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///mydb.db'
    db = SQLAlchemy(app)
    
    class User(db.Model):
        id = db.Column(db.Integer, primary_key=True)
        name = db.Column(db.String(50))
    

7. 用户认证与会话

  • 会话管理:使用 session 对象(需设置密钥):
    app.secret_key = 'your_secret_key'
    
    @app.route('/set_session')
    def set_session():
        session['user'] = 'Alice'
        return 'Session set'
    
  • 扩展推荐Flask-Login(用户登录管理)。

8. 常用扩展

  • Flask-WTF:表单处理。
  • Flask-Mail:发送邮件。
  • Flask-RESTful:构建 REST API。
  • Flask-CORS:跨域资源共享。

9. 部署生产环境

  • 服务器:使用 Gunicorn 或 uWSGI。
  • 反向代理:搭配 Nginx 或 Apache。
  • 云平台:部署到 Heroku、AWS、Docker 等。

10. 学习资源


Flask 的简洁性使其成为快速开发小型项目和原型设计的理想选择,同时通过扩展也能满足企业级需求。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

司南锤

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值