Flask项目初始化与基础架构搭建指南

陆遥
陆遥
发布时间:2026-10-14 | 2人浏览过
原创

本文详细介绍如何从零开始创建一个结构清晰的Flask项目。内容涵盖依赖安装、项目目录规划、配置文件编写、ORM与迁移工具集成、蓝图创建及注册流程,以及数据模型定义和数据库迁移命令的使用,帮助开发者快速建立可扩展的Web应用基础架构。

安装依赖与初始化环境

首先,需要安装项目运行所需的依赖包。这包括核心框架,以及用于数据库连接、脚本管理和数据迁移的扩展库。确保这些基础组件已正确安装,是后续步骤顺利执行的前提。


flask
pymysql
flask_script
flask_migrate
flask_sqlalchemy

构建项目目录结构

接下来,构建Flask项目的基础目录结构。一个标准的初始结构应包含静态资源文件夹、模板文件夹以及主应用入口文件。这种分层结构有助于后续代码的维护和扩展,保持项目整洁。


flaskexample
 |---static
 |---templates
 |---app.py

配置应用环境与参数

在项目根目录下创建配置文件,用于集中管理应用的环境变量。配置类中需定义调试模式开关、数据库连接URI(指定驱动、用户、密码、主机及数据库名)、是否追踪修改以及当前环境标识。合理的配置分离能提升项目的安全性和可维护性。


setting.py
 
 class DevelopmentConfig:
  DEBUG = True
  SQLALCHEMY_DATABASE_URI=mysql+pymysql://用户:密码@host/数据库
  SQLALCHEMY_TRACK_MODIFICATIONS=False
  SQLALCHEMY_ECHO=True
  ENV='development'
  
# 此时项目目录结构 
flaskexample
 |---static
 |---templates
 |---app.py
 |---setting.py

实现应用工厂与扩展初始化

在项目目录下建立模块,并在其初始化文件中编写应用工厂函数。该函数负责实例化Flask应用对象,指定模板和静态文件路径,加载前述配置文件,并初始化数据库扩展。通过工厂模式创建应用实例,有利于支持多环境配置和测试隔离。


apps.__init__.py
 
 from flask import Flask
 
 import setting
 from exts import db
 
 
 def create_app():
  app = Flask(__name__, template_folser='../templates', static_folder='../static')
  
  app.config.from_object(setting.DevelopmentConfig)
  
  # 初始化ORM
  db.init_app(app=app)
  
  return app

# 此时项目目录结构 
flaskexample
 |---apps
  |---__init__.py
 |---static
 |---templates
 |---app.py
 |---setting.py

主入口文件与蓝图注册

在主入口文件中,导入应用工厂、脚本管理器及迁移命令。实例化应用后,创建Manager对象并绑定应用,配置迁移命令并将其注册到管理器中。同时,导入用户模块的蓝图并进行注册,最后通过管理器启动应用。这一步骤串联了配置、脚本管理和路由注册。


app.py
 from flask import Flask
 from flask_script import Manager
 from flask_migrate import Migrate, MigrateCommand

 from apps import create_app
 from exts import db
 from apps.user import user
 
 app = create_app()
 
 # 配置manage
 manager = Manager(app=app)
 
 # 配置migrate命令,将相关命令交给manage
 migrate = Migrate(app=app, db=db)
 manager.add_command('db', MigrateCommand)
 
 # 注册蓝图
 app.register_blueprint(user)
 
 
 if __name__ == '__main__':
  manager.run()

集中管理数据库扩展

创建模块以集中管理数据库扩展。在该模块的初始化文件中,实例化SQLAlchemy对象。这种集中管理方式使得数据库实例可以在多个地方复用,避免重复初始化,符合单一职责原则,便于后续扩展其他数据库相关功能。


exts.__init__.py
 
 from flask_sqlalchemy import SQLAlchemy
 
 # 配置ORM
 db = SQLAlchemy()
 
# 此时项目目录结构 
flaskexample
 |---apps
  |---__init__.py
 |---exts
  |---__init__.py
 |---static
 |---templates
 |---app.py
 |---setting.py

创建业务模块与应用结构

在模块下创建具体的业务应用文件夹(如用户模块)。在该业务模块的初始化文件中,可以定义蓝图或进行其他业务相关的初始化操作。此时项目结构已初步成型,包含了配置、扩展、主入口及具体的业务模块,为后续开发打下基础。


# 此时项目目录结构 
flaskexample
 |---apps
  |---__init__.py
  |---user
   |---__init__.py
   |---view.py
   |---models.py
 |---exts
  |---__init__.py
 |---static
 |---templates
 |---app.py
 |---setting.py

定义数据模型

在用户模块的数据模型文件中,定义数据库表结构。通过继承的Model类,定义字段名称、类型及约束条件(如字符串长度、是否允许为空)。数据模型直接映射到数据库表,是ORM操作的核心,确保数据结构的清晰和类型安全。


user.model
 from exts import db
 
 class User(db.Model):
  username = db.Column(db.String(60), nullable=True)
  password = db.Column(db.String(60), nullable=True)
  ···

执行数据库迁移

执行数据库迁移命令以同步模型定义与数据库状态。首先初始化迁移仓库,然后生成迁移脚本,最后执行迁移更新数据库。迁移工具会自动处理表结构的变更,确保数据库版本与代码模型保持一致。迁移完成后,项目中会生成相应的迁移目录和脚本文件。


 # 1. 初始化表
 python app.py db init
 # 2. 生成迁移文件
 Python app.py db migrate
 # 3. 进行数据迁移
 python app.py db upgrate

#当命令2执行成功后自动生成migrations文件夹
# 此时项目目录结构 
flaskexample
 |---apps
  |---user
   |---__init__.py
   |---models.py
   |---view.py
  |---__init__.py
 |---exts
  |---__init__.py
 |---migrations
  |---versions
   |---9eef46471b52_.py
  |---alembic.ini
  |---env.py
  |---READEME
  |---script.py.mako
 |---static
 |---templates
 |---app.py
 |---setting.py

蓝图创建与注册流程

在用户模块的初始化文件中创建蓝图对象,用于隔离路由和业务逻辑。随后,在主入口文件中将该蓝图注册到应用中。蓝图的引入使得大型项目可以模块化开发,不同功能模块独立管理路由,提高代码的可读性和可维护性。


user.__init__

 from flask import Blueprint
 user = Blueprint("user", __name__)

视图逻辑处理

蓝图注册完成后,即可在用户模块的视图文件中编写具体的业务逻辑处理代码。视图函数负责接收请求、调用模型进行数据操作,并返回响应。这种分层架构使得逻辑处理清晰,便于单元测试和后续的功能迭代与扩展。

至此,已完成Flask项目的基础创建与配置流程。通过规范的目录结构、配置管理、ORM集成及蓝图机制,构建了一个可扩展的项目骨架。如需了解更多Flask项目开发的细节与最佳实践,建议参考本站其他相关技术文章。

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表