开始
创建一个新的文件夹,开始配置
配置项
1.创建create_app.py 封装flask_app
from flask import Flask
from flask_cors import CORS
from views.user_bp import user_bp
from model.model import db
from views.channel_bp import channel_bp
from views.news_bp import news_bp
def create_app(config):
# 实例化flask_app
flask_app = Flask(__name__)
# 挂载到flask核心对象
flask_app.config.from_object(config)
# 挂载蓝图
flask_app.register_blueprint(user_bp)
flask_app.register_blueprint(channel_bp)
flask_app.register_blueprint(news_bp)
# 配置跨域
cors = CORS(flask_app)
# 挂载数据库
db.init_app(flask_app)
return flask_app
2.创建app入口文件
from create_app import create_app
from config.settings import DevConfig
app = create_app(DevConfig)
3.创建config文件夹---settings文件
class Config:
# 设置密钥
# secret_key
SECRET_KEY = "dnuajncub"
# 数据库类型+数据库操作引擎://用户名:密码@主机名:端口/数据库名
# sqlalchemy_database_uri
SQLALCHEMY_DATABASE_URI = ""
# sqlalchemy_track_modifications
# 追踪数据的修改信号
SQLALCHEMY_TRACK_MODIFICATIONS = False
# sqlalchemy_echo
# 是否在控制台打印输出sql语句
SQLALCHEMY_ECHO = True
# 返回json的时候 不转义中文
JSON_AS_ASCII = False
# 容联云密钥
ACC_ID = "8aaf0708827c8fd50182aad56c550895"
ACC_TOKEN = "1afad367614148bbaa2261a287b9b4e0"
APP_ID = "8aaf0708827c8fd50182aad56d54089c"
TID = "1"
SMS_TIME = 5
# redis配置项
REDIS_HOST = "127.0.0.1"
REDIS_PORT = "6379"
REDIS_PASSWORD = "123456"
# 七牛云地址
QINIU_HOST = 'http://rilywxg6x.hd-bkt.clouddn.com/'
# 开发环境的配置项
class DevConfig(Config):
SQLALCHEMY_DATABASE_URI = "mysql+pymysql://root:123456@127.0.0.1:3306/my_news"
# 生产环境的配置项
class ProdConfig(Config):
SQLALCHEMY_DATABASE_URI = ""
4.创建model文件夹---model文件
from flask_sqlalchemy import SQLAlchemy
from datetime import datetime
db = SQLAlchemy()
5.创建manage.py文件
from flask_script import Manager
from flask_migrate import Migrate, MigrateCommand
from app import app
from model.model import db
# 创建一个命令窗口
# 需要传参:flask实例对象app
manage = Manager(app)
# 实例化一个迁移类
# 需要传参:flask实例对象app
migrate = Migrate(app, db)
# 把迁移命令添加到命令窗口
# add_command添加到命令窗口
# 两个参数, 组名,迁移命令
manage.add_command("db", MigrateCommand)
# 启动程序
if __name__ == '__main__':
manage.run()
6.创建views文件夹,写视图---例如user_bp.py
from flask import Blueprint, jsonify
from flask_restful import Api
# 实例化蓝图
# url_prefix="/user" 路由前缀
user_bp = Blueprint("user_bp", __name__, url_prefix="/user")
# 实例化路由收集器
api = Api(user_bp)
注:以上所有配置完都需要到create_app.py里面去注册挂载
初始化db文件
python manage.py db init
生成迁移文件
python manage.py db migrate
执行迁移命令
python manage.py db upgrade