flask项目拆分重构实例

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

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

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

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

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

三、配置文件和目录

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:[email protected]: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)