• flask 的简单拆分升级版2


    #创建manage.py
    from flask_script import Manager from app import create_app app=create_app('developConfig')#调用创建的注册create_app,developConfig给他传一个生产环境,本次选择开发者环境 manage = Manager(app) if __name__ == '__main__': manage.run()

      


    #创建__init__.py文件
    from
    flask import Flask from app import settings from app.ext import init_info from app.views import blue def create_app(environ):#定义一个创建app函数,为其添加一个环境变量参数 app = Flask(__name__)#注册app app.register_blueprint(blueprint=blue)#加载蓝图 app.config.from_object(settings.config_info.get(environ)) #flask扩展包的配置信息 # app.config['SECRET_KEY']='123'#session 的密钥,如果没有用session会报错 # app.config['SESSION_TYPE']='redis'#加载redis存储,还可以理解为redis驱动 # app.config['SQLALCHEMY_DATABASE_URI']='sqlite:///sqlite3.db'#加载sqlite数据库 # app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql+pymysql://root:123456@localhost:3306/flask1805' # app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False app.config.from_object(settings.config_info.get(environ))#从配置里面开发环境中获取环境加载到新创建的app中 init_info(app) return app # url 统一资源定位符 # uri 统一资源标识符
    #创建settings.py文件
    # 关于咱们的四个生产环境
    # 开发环境    测试环境   演示环境   线上环境
    #针对MySQL的数据库配置,可以调用没有写死
    def get_database_url(info):
        name = info.get('name') or 'mysql'
        username = info.get('username') or 'root'
        password = info.get('password') or 'youpassword'
        host = info.get('host') or 'localhost'
        port = info.get('port') or '3306'
        driver = info.get('driver') or 'pymysql'
        database = info.get('database') or 'flask3'#换成自己的数据库
    
        return '{}+{}://{}:{}@{}:{}/{}'.format(name,driver,username,password,host,port,database)
    
    #配置信息类也可以说是线上环境
    class Config():
        DEBUG = False#默认调试模式关闭
        TESTING = False#测试模式关闭
        SECRET_KEY = '123'#密钥
        SESSION_TYPE = 'redis'#session存储类型
        SQLALCHEMY_TRACK_MODIFICATIONS = False#报的一个提示不是错,只是一个警告信息,通过这个可以关闭提示,想了解可以注释掉自己看看
    
    
    
    #开发环境
    class DevelopConfig(Config):
    
        DEBUG = True
        TESTING = True
    
        database = {
            'username': 'root',
            'password': 'youpassword',
            'host': 'localhost',
            'port': '3306',
            'database': 'flask3',
            'driver':'pymysql',
            'name' : 'mysql'
        }
    
        # 链接数据库的url
        SQLALCHEMY_DATABASE_URI = get_database_url(database)
    
    #测试环境
    class TestConfig(Config):
        TESTING = True
    
        database = {
             'username': 'root',
            'password': 'youpassword',
            'host': 'localhost',
            'port': '3306',
            'database': 'flask3',
            'driver':'pymysql',
            'name' : 'mysql'
        }
    
        SQLALCHEMY_DATABASE_URI = get_database_url(database)
    
    #演示环境
    class ShowConfig(Config):
    
        database = {
            'username': 'root',
            'password': 'youpassword',
            'host': 'localhost',
            'port': '3306',
            'database': 'flask3',
            'driver': 'pymysql',
            'name': 'mysql'
        }
    
        SQLALCHEMY_DATABASE_URI = get_database_url(database)
    
    #生产环境
    class WorkConfig(Config):
    
        database = {
             'username': 'root',
            'password': 'youpassword',
            'host': 'localhost',
            'port': '3306',
            'database': 'flask3',
            'driver':'pymysql',
            'name' : 'mysql'
        }
    
        SQLALCHEMY_DATABASE_URI = get_database_url(database)
    
    
    #封装四个开发环境
    config_info = {
    
        "WorkConfig": WorkConfig,
        "developConfig":DevelopConfig,
        "testConfig": TestConfig,
        "showConfig": ShowConfig,
        "default": DevelopConfig,
    }
    

      

    #创建views.py文件
    from flask import Blueprint#导入蓝图模块
    
    from app.ext import db
    from app.modles import City
    
    blue=Blueprint('first',__name__)#创建蓝图
    
    @blue.route('/')#路由
    def hello_world():
        return 'Hello World!'
    
    #创建数据库
    @blue.route('/createall/')
    def create_all():
        db.create_all()
        return '数据库创建成功'
    #添加数据库信息
    @blue.route('/addcity/')
    def add_city():
        city=City()
        city.c_name='郑州'
        city.c_age= 3500
        db.session.add(city)
        db.session.commit()
    
        return '数据添加成功'
    #删除数据
    @blue.route('/dropall/')
    def drop_all():
        db.drop_all()
        return '数据删除成功'
    #获取所有信息
    @blue.route('/getall/')
    def get_all():
        city=City.query.all()
        print(city)
        print(type(city))
        return '数据查询成功'
    

      

    #创建modles.py文件
    from app.ext import db
    
    
    class City(db.Model):
        c_id = db.Column(db.Integer, primary_key=True, autoincrement=True)
        c_name = db.Column(db.String(32))
        c_age = db.Column(db.Integer)
    

      

    #创建ext.py文件
    from flask_session import Session
    from flask_sqlalchemy import SQLAlchemy
    #第三库都在这加载
    sess=Session()#加载session
    
    db=SQLAlchemy()#加载SQLAlchemy
    
    def init_info(app):#定义一个init_info函数,在调用的时候直接调用session
        sess.init_app(app)
        db.init_app(app)#把数据库加载到app
    

      已测试都能成功

  • 相关阅读:
    git命令 提交/拉取代码
    java获得当前时间
    jsp中下拉菜单显示数据库里的内容
    commons-fileupload.jar包和 commons-io.jar包下载地址
    java.sql.SQLSyntaxErrorException
    jsp跳转前加入提示语句
    java.sql.SQLException: No value specified for parameter 12
    Tomcat 常见 "The value for the useBean class attribute is invalid" 错误
    java.lang.ClassNotFoundException
    数据库知识
  • 原文地址:https://www.cnblogs.com/liangliangzz/p/10085066.html
Copyright © 2020-2023  润新知