flask---整体流程思路

在这里插入图片描述
思路图

在这里插入图片描述
下面二话不说还是看代码
manage.py内代码

import os
from flask_migrate import MigrateCommand
from flask_script import Manager
from App import create_app
env = os.environ.get('flask1810') or 'default'
app = create_app(env)
manager = Manager(app)
manager.add_command('db',MigrateCommand)
if __name__ =='__main__':
    manager.run()

init.py内代码

import os

from flask import Flask

from App.ext import init_ext
from App.settings import envs
from App.views import init_blue

def create_app(env):
    app = Flask(__name__)
    #初始化项目
    app.config.from_object(envs.get(env))
    #初始化插件
    init_ext(app)

    #初始化路由

    init_blue(app)
    return app

ext.py内代码

from flask_migrate import Migrate
from  flask_sqlalchemy import SQLAlchemy


db = SQLAlchemy()
migrate = Migrate()#初始化


def init_ext(app):
    db.init_app(app)
    migrate.init_app(app,db)

models.py内代码

from App.ext import db
class Person(db.Model):
    id = db.Column(db.Integer,primary_key=True,autoincrement=True)
    p_name = db.Column(db.String(16))
    p_age = db.Column(db.Integer,default=18)

配置 文件settings

def get_db_uri(dbinfo):
    backend = dbinfo.get('BACKEND')#数据库
    driver = dbinfo.get('DRIVER')
    host = dbinfo.get('HOST')
    port = dbinfo.get('PORT')
    user = dbinfo.get('USER')
    password = dbinfo.get('PASSWORD')
    name = dbinfo.get('NAME')
    return '{}+{}://{}:{}@{}:{}/{}'.format(backend, driver, user, password, host, port, name)
# 'mysql+pymysql://用户名称:密码@localhost:端口/数据库名称'






class Config:
    DEBUG = False
    TESTING  =False
    SECRET_KEY = 'ASCFASFAFW'
    SQLALCHEMY_TRACK_MODIFICATIONS = True
    # SQLALCHEMY_COMMIT_TEARDOWN = True


class DevelopConfig(Config):#开发环境
    DEBUG = True
    dbinfo={
        'BACKEND':'mysql',
        'DRIVER':'pymysql',
        'HOST':'localhost',
        'PORT':'3306',
        'USER':'root',
        'PASSWORD':'123456',
        'NAME':'flask1810'


    }
    SQLALCHEMY_DATABASE_URI = get_db_uri(dbinfo)
class TestingConfig(Config):#测试环境
    DEBUG = True
    dbinfo={
        'BACKEND':'mysql',
        'DRIVER':'pymysql',
        'HOST':'127.0.0.1',
        'PORT':'3306',
        'USER':'root',
        'PASSWORD':'123456',
        'NAME':'flask1810'


    }
    SQLALCHEMY_DATABASE_URI = get_db_uri(dbinfo)
class StagingConfig(Config):#演示环境
    DEBUG = True
    dbinfo={
        'BACKEND':'mysql',
        'DRIVER':'pymysql',
        'HOST':'127.0.0.1',
        'PORT':'3306',
        'USER':'root',
        'PASSWORD':'123456',
        'NAME':'flask1810'


    }
    SQLALCHEMY_DATABASE_URI= get_db_uri(dbinfo)
class ProductConfig(Config):#上线环境
    DEBUG = True
    dbinfo={
        'BACKEND':'mysql',
        'DRIVER':'pymysql',
        'HOST':'127.0.0.1',
        'PORT':'3306',
        'USER':'root',
        'PASSWORD':'123456',
        'NAME':'flask1810'
    }
    SQLALCHEMY_DATABASE_URI = get_db_uri(dbinfo)

envs={
    'develop':DevelopConfig,
    'testing':TestingConfig,
    'staging':StagingConfig,
    'product':ProductConfig,
    'default':DevelopConfig,
}


视图 views

from flask import Blueprint
from App.models import  Person
blue = Blueprint('blue',__name__)

def init_blue(app):
    app.register_blueprint(blue)




@blue.route('/')
def index():
    return '============'

猜你喜欢

转载自blog.csdn.net/qq_42817166/article/details/84828473
今日推荐