Erlo

创建一个Flask项目并进行简单配置

2020-11-18 00:00:20 发布   288 浏览  
页面报错/反馈
收藏 点赞

  1. 安装的依赖包
flask
pymysql
flask_script
flask_migrate
flask_sqlalchemy
  1. 创建Flask项目(项目目录结构)
flaskexample
    |---static
    |---templates
    |---app.py
  1. 在项目下创建settings文件,进行配置
setting.py
    
    class DevelopmentConfig:
        DEBUG = True
        SQLALCHEMY_DATABASE_URI=mysql+pymysql://用户:密码@host/数据库
        SQLALCHEMY_TRACK_MODIFICATIONS=False
        SQLALCHEMY_ECHO=True
        ENV='development'
        
# 此时项目目录结构    
flaskexample
    |---static
    |---templates
    |---app.py
    |---setting.py
  1. 在项目下创建apps文件,在__init__.py文件下进行配置
apps.__init__.py
    
    from flask import Flask
    
    import setting
    from exts import db
    
    
    def create_app():
        app = Flask(__name__, template_folser='../templates', static_folder='../static')
        
        app.config.from_object(setting.DevelopmentConfig)
        
        # 初始化ORM
        db.init_app(app=app)
        
        return app

# 此时项目目录结构    
flaskexample
    |---apps
        |---__init__.py
    |---static
    |---templates
    |---app.py
    |---setting.py
  1. 在项目文件夹下的app.py中进行配置
app.py
    from flask import Flask
    from flask_script import Manager
    from flask_migrate import Migrate, MigrateCommand

    from apps import create_app
    from exts import db
    from apps.user import user
    
    app = create_app()
    
    # 配置manage
    manager = Manager(app=app)
    
    # 配置migrate命令,将相关命令交给manage
    migrate = Migrate(app=app, db=db)
    manager.add_command('db', MigrateCommand)
    
    # 注册蓝图
    app.register_blueprint(user)
    
    
    if __name__ == '__main__':
        manager.run()
  1. 创建exts文件,进行ORM配置
exts.__init__.py
    
    from flask_sqlalchemy import SQLAlchemy
    
    # 配置ORM
    db = SQLAlchemy()
    
# 此时项目目录结构  
flaskexample
    |---apps
        |---__init__.py
    |---exts
        |---__init__.py
    |---static
    |---templates
    |---app.py
    |---setting.py
  1. 在apps._init_.py中初始化ORM配置(已在文件中进行配置)
  2. 在app.py中注册migrate命令相关配置(已在文件中进行配置)
  3. 在apps下创建app文件并创建相关文件(如用户app)
# 此时项目目录结构    
flaskexample
    |---apps
        |---__init__.py
        |---user
            |---__init__.py
            |---view.py
            |---models.py
    |---exts
        |---__init__.py
    |---static
    |---templates
    |---app.py
    |---setting.py
  1. 在apps.user.models.py中编写数据表的相关信息
user.model
    from exts import db
    
    class User(db.Model):
        username = db.Column(db.String(60), nullable=True)
        password = db.Column(db.String(60), nullable=True)
        ···
  1. 进行数据迁移
    # 1. 初始化表
    python app.py db init
    # 2. 生成迁移文件
    Python app.py db migrate
    # 3. 进行数据迁移
    python app.py db upgrate

#当命令2执行成功后自动生成migrations文件夹
# 此时项目目录结构    
flaskexample
    |---apps
        |---user
            |---__init__.py
            |---models.py
            |---view.py
        |---__init__.py
    |---exts
        |---__init__.py
    |---migrations
        |---versions
            |---9eef46471b52_.py
        |---alembic.ini
        |---env.py
        |---READEME
        |---script.py.mako
    |---static
    |---templates
    |---app.py
    |---setting.py
  1. 在user _init_下创建蓝图,并在apps的_init_下注册
user.__init__

    from flask import Blueprint
    user = Blueprint("user", __name__)
  1. 之后就可以在user下的view.py中进行逻辑的处理了
登录查看全部

参与评论

评论留言

还没有评论留言,赶紧来抢楼吧~~

手机查看

返回顶部

给这篇文章打个标签吧~

棒极了 糟糕透顶 好文章 PHP JAVA JS 小程序 Python SEO MySql 确认