商城首页欢迎来到中国正版软件门户

您的位置:首页 >用Python开发Web应用:Flask框架实战教程

用Python开发Web应用:Flask框架实战教程

  发布于2026-02-13 阅读(0)

扫一扫,手机访问

Flask是一个轻量级Python Web框架,核心简洁、扩展灵活,适合初学者理解Web开发本质和快速搭建原型、API或小型系统;它不强制依赖特定组件,支持按需集成SQLAlchemy、WTForms等工具。

用Python构建Web应用_Flask框架开发实战详解

Flask是什么,为什么适合入门和快速开发

Flask是一个轻量级的Python Web框架,核心简洁、扩展灵活。它不强制使用特定的数据库、表单验证或用户认证方案,而是让你按需选择组件(比如用SQLAlchemy操作数据库、用WTForms处理表单)。这种“微框架”设计特别适合初学者理解Web开发本质,也适合快速搭建原型、API服务或小型后台系统。

从零启动一个Flask应用

安装Flask后,只需几行代码就能跑起一个Web服务:

  • 执行 pip install flask
  • 新建 app.py,写入:
    from flask import Flask
    app = Flask(__name__)

    @app.route('/')
    def home():
      return 'Hello, Flask!'

    if __name__ == '__main__':
      app.run(debug=True)
  • 运行 python app.py,访问 http://127.0.0.1:5000 即可看到响应

注意:debug=True 仅用于开发,上线前必须关闭,否则会暴露调试信息。

处理请求与动态路由

Flask通过装饰器定义路由,支持变量提取和请求方法区分:

  • 带参数的URL:@app.route('/user/<int:user_id>') → 自动转为整数类型
  • 接收不同HTTP方法:@app.route('/login', methods=['GET', 'POST'])
  • 在函数中用 request 对象获取数据:
    from flask import request
    @app.route('/search')
    def search():
      q = request.args.get('q', '')  # GET参数
      data = request.form.get('content')  # POST表单
      return f'Searching for: {q}'

渲染模板与静态文件管理

Flask默认支持Jinja2模板引擎,让HTML与Python逻辑分离:

  • 项目结构建议:
    myapp/
      app.py
      templates/
        index.html
      static/
        style.css
        script.js
  • 在视图中渲染模板:render_template('index.html', title='首页', items=['A', 'B'])
  • 模板中使用变量与循环:
    <h1>{{ title }}</h1>
    <ul>
    {% for item in items %}
      <li>{{ item }}</li>
    {% endfor %}
    </ul>
  • 静态文件用 url_for('static', filename='style.css') 引用,Flask自动处理路径

使用配置与简单数据库集成

实际项目需要环境区分和数据存储。Flask提供配置对象和扩展机制:

  • 设置配置:app.config['SECRET_KEY'] = 'dev-key'(用于session加密)
  • 加载配置文件:app.config.from_pyfile('config.py')
  • 接入SQLite + SQLAlchemy(安装 flask-sqlalchemy):
    from flask_sqlalchemy import SQLAlchemy
    app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///app.db'
    db = SQLAlchemy(app)

    class User(db.Model):
      id = db.Column(db.Integer, primary_key=True)
      name = db.Column(db.String(80), nullable=False)
  • 首次运行后执行 db.create_all() 创建表

不复杂但容易忽略

本文转载于:互联网 如有侵犯,请联系zhengruancom@outlook.com删除。
免责声明:正软商城发布此文仅为传递信息,不代表正软商城认同其观点或证实其描述。

热门关注