欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

flask项目拆分重构实例

程序员文章站 2022-07-13 17:34:06
...

由于好久没有用flask框架做项目。一时间忘记了 flask的拆分。在这里做一个笔记,供大家参考、
我们先来安装一下需要的依赖库
pip install flask_script
pip install flask_sqlalchemy
pip install flask_migrate

一、利用pycharm创建一个flask项目。

会得到这样一个目录
flask项目拆分重构实例
其中从上至下,第一个文件为pycharm的项目配置文件,不用管。
static为放置静态文件的目录。
templates为放置模板的目录
apps为flask的入口文件,即启动文件

二、先创建需要用到的文件和目录。

如图我们先创建这样一些文件和目录。
flask项目拆分重构实例

三、配置文件和目录

1.我们先配置apps包下的__init__.py文件

from flask import Flask
import settings
from apps.views.view import bp
from exts import db


def create_app():
    # 创建flask app 并指定目录
    app = Flask(__name__, template_folder='../templates', static_folder='../static')
    # 导入配置文件
    app.config.from_object(settings)
    # 添加数据库扩展
    db.init_app(app)
    # 注册蓝图
    app.register_blueprint(bp)
    return app

2.我们在apps/views包下创建view.py文件。以后我们下的其他view文件也放到这个下面,例如,如果我们开发比较大型的现目,有 user_view.py, order_view.py, shopping_view.py等多个文件,这样我们就可以好的区分每个模块的文件了。

这里我们就创建一个通用的view.py文件,输入一下代码

from flask import Blueprint
# 创建一个蓝图对象
bp = Blueprint('main', __name__)

# 创建一个主页路由
@bp.route('/')
def index():
    print('hello flask!')
    return 'hello flask!'

3.打开settings.py文件,输入一下代码

import os

# 项目基础配置
ENV = 'development'  # 是开发模式
DEBUG = True   # 打开debug

#  mysql+驱动://用户名:密码@主机:3306/数据库名
SQLALCHEMY_DATABASE_URI = 'mysql+pymysql://root:aaa@qq.com:3306/book1'
SQLALCHEMY_TRACK_MODIFICATIONS = False

# cookies配置
SECRET_KEY = 'jkdfkldsj7345374^&5'

# 多媒体文件上传配置
BASE_DIR = os.path.dirname(__file__)
UPLOAD_DIR = os.path.join(BASE_DIR, 'static/upload')

4.模仿django实现manage.py文件,打开manage.py文件。输入一下代码

from flask_migrate import Migrate, MigrateCommand
from flask_script import Manager

from apps import create_app
from exts import db

# 如果有models文件 一定在上面导入,不然migrates 是识别不到的,就会导入数据库失败

# 创建app
app = create_app()
# 把app加入到manger中
manager = Manager(app=app)

# 添加命令 (数据库相关)
migrate = Migrate(app=app, db=db)
manager.add_command('main', MigrateCommand)

if __name__ == '__main__':
    manager.run()

到此基本的拆分就结束了,先去启动项目就可以访问了127.0.0.1:5000 得到 hello flask!
接下来我们来配置数据相关的

5.创建数据对象

在exts目录下的__init__.py文件中输入一下代码:

from flask_sqlalchemy import SQLAlchemy

db = SQLAlchemy()

6.创建model.py文件

在apps/models/model.py 中创建model模型 就可以了。然后再命令行migrate就行了。
拆分就到这里就结束了。

相关标签: flask拆分