利用Flask开发框架从零到起飞

作者:郭震

什么是 Flask?

Flask是一个轻量级的Web 应用框架,使用 Python 编写.

它基于Werkzeug WSGI工具包和 Jinja2 模板引擎.

Flask被设计为一个简单易用的框架,适合小型应用或实验性项目,同时也可以扩展以适应复杂的应用.

环境准备

安装 Flask
创建虚拟环境
go 复制代码
python3 -m venv venv
激活虚拟环境
  • Windows:

    go 复制代码
    venv\Scripts\activate
  • macOS/Linux:

    go 复制代码
    source venv/bin/activate
安装 Flask
go 复制代码
pip install Flask

创建第一个 Flask 应用

创建项目目录

go 复制代码
mkdir flask_app
cd flask_app

创建应用文件

在项目目录下创建 app.py 文件:

go 复制代码
from flask import Flask

app = Flask(__name__)

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

if __name__ == '__main__':
    app.run(debug=True)

运行应用

go 复制代码
python app.py

访问 http://127.0.0.1:5000/ 可以看到 "Hello, World!".

路由和视图函数

定义路由

go 复制代码
@app.route('/hello')
def hello():
    return 'Hello, Flask!'

动态路由

go 复制代码
@app.route('/user/<username>')
def show_user_profile(username):
    return f'User {username}'

模板渲染

创建模板目录

go 复制代码
mkdir templates

创建模板文件

在 templates 目录下创建 index.html:

go 复制代码
<!doctype html>
<html>
    <head>
        <title>Hello, Flask!</title>
    </head>
    <body>
        <h1>Hello, {{ name }}!</h1>
    </body>
</html>

渲染模板

在 app.py 中修改路由:

go 复制代码
from flask import render_template

@app.route('/')
def hello_world():
    return render_template('index.html', name='Flask')

表单处理

创建表单页面

在 templates 目录下创建 form.html:

go 复制代码
<!doctype html>
<html>
    <head>
        <title>Form</title>
    </head>
    <body>
        <form action="/submit" method="post">
            <p><input type="text" name="name" /></p>
            <p><input type="submit" value="Submit" /></p>
        </form>
    </body>
</html>

处理表单数据

go 复制代码
from flask import request

@app.route('/form')
def form():
    return render_template('form.html')

@app.route('/submit', methods=['POST'])
def submit():
    name = request.form['name']
    return f'Hello, {name}!'

数据库集成

安装 Flask-SQLAlchemy

go 复制代码
pip install Flask-SQLAlchemy

配置数据库

go 复制代码
from flask_sqlalchemy import SQLAlchemy

app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///test.db'
db = SQLAlchemy(app)

定义模型

go 复制代码
class User(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    username = db.Column(db.String(80), unique=True, nullable=False)

    def __repr__(self):
        return f'<User {self.username}>'

创建数据库

go 复制代码
with app.app_context():
    db.create_all()

部署应用

安装 Gunicorn

go 复制代码
pip install gunicorn

运行应用

go 复制代码
gunicorn -w 4 app:app

结论

通过以上步骤,你已经掌握了 Flask 开发的基本知识,可以开始构建自己的 Web 应用.Flask 的灵活性和扩展性使得它适用于各种规模的项目.

感谢你的支持,原创不易,希望转发,点击,以及收藏,也可以点击阅读原文 更多AI知识分享,同时也可以关注知识星球:郭震AI学习星球

长按上图二维码查看「郭震AI学习星球」

  • 更多Python、数据分析、爬虫、前后端开发、人工智能等教程参考.

  • 以上全文,欢迎继续点击阅读原文学习,阅读更多AI资讯,请点击这里 https://ai-jupyter.com/

相关推荐
ZhengEnCi4 小时前
模型训练完整流程:从数据准备到模型上线的 10 个关键步骤(全文可跑)
后端·算法
ragnwang4 小时前
Notes: Python pybind11 import C++ module
开发语言·c++·python
王中阳Go4 小时前
后端转 Agent 岗面试怎么答:8 个高频问题与应答口径
人工智能·后端·python·大语言模型
程序猿DD4 小时前
OctaFuse Gateway 2.18.0:MCP 接入支持 OAuth,供应商粘性绑定可视化管理
后端
weixin_307779135 小时前
RAG 面试陷阱——混合检索并非无条件优越:一个条件反转实验
人工智能·python·面试·职场和发展
云和数据.ChenGuang6 小时前
深入解析 Python 的 dir():从用法到 CPython 源码实现
开发语言·人工智能·python·langchain
ZhengEnCi6 小时前
Agent 规则管理:让 Memory 做索引、让 Skill 存规则——上下文上限实测与分工方案
后端
nice_lcj5207 小时前
深入理解 Java 反射:从 Class 对象到方法调用(含性能实测 + 迷你 IOC 实战 + 面试考点)
java·开发语言·后端·面试
骑着蜗牛撵大象3277 小时前
2026 后端 AI 工程化:Spring AI 管调用、MCP 管工具、Agent 内嵌管自治
java·人工智能·后端·spring·ai·可观测性·mcp
摸爬滚打的小李8 小时前
Spring XML + WAR + Tomcat 项目启动
后端