【Flask项目结构搭建】

项目结构搭建

创建一个Flask项目

第一步

先创建一个python Package 起名叫做app

第二步

把static文件夹和template文件夹放入app文件夹中

第三步

创建settings.py配置文件
"""
ENV = "development"
DEBUG = True
SQLALCHEMY_DATABASE_URI="mysql+pymysql://root:123456@39.106.150.87:3306/py1901"
SQLALCHEMY_TRACK_MODIFICATIONS = True
--------------------------------------------------------------------
# secret key
SECRET_KEY = 'dhfjh244djsqopfv5790874878jchfjh'
# SECRET_KEY=os.urandom(24)
PERMANENT_SESSION_LIFETIME = timedelta(hours=1)
--------------------------------------------------------------------
# permanent_session_lifetime
BASE_DIR = os.path.dirname(__file__)
# print(BASE_DIR)
UPLOAD_DIR = os.path.join(BASE_DIR, 'app/static/upload')
"""

第四步

重命名启动文件app.py文件名为manage.py

第五步

将启动文件manage.py中"""app = Flask(__name__)"""去除,仅作为启动文件
                         @app.route('/')
                         def hello_world():
                             return 'Hello World!

第六步

在app文件夹中的__init__.py(存放各种配置文件。蓝图,模型等配置文件都放在这个文件夹中)文件中去构建app
"""
  from flask import Flask
  import settings

  def create_app():
      app = Flask(__name__)
      app.config.from_object(settings)

       return app                                                                       """

第七步

在manage.py文件中要拿到__init__中创建的app对象,调用create_app()这个函数,返回app对象然后使用flask_script中Manager(app)这个类,将app作为实参传入创建一个manager对象来管理app对象
 """
    from app import create_app
    
    from flask_script import Manager
    
    app = create_app()
    manager = Manager(app)
 """
  因为把app的权利交给了manager,所以把app.run() 改为了manager.run()

第八步

使用views包,创建一个user_views.py文件,将所有的路由都放在其中)为了避免循环导入,所以使用蓝图在user_views.py文件中:
"""
from flask import Blueprint

user_bp = Blueprint('user',__name__,url_prefix='/user')  #定义蓝图  #rl_prefix:路径的前缀

@user_bp.route('/') #使用蓝图对象定义路由,相当于app.route('/')
def index():
    return"...."
 """

第九步

在app包中的__init__文件中使用主函数app注册蓝图:app.register_blueprint(user_bp)

===========================================================================

pip install pymysql   驱动,相当于pycharm和数据库的链接桥梁
pip install flask sqlalchemy 完成数据的映射
pip install flask-script  脚本命令 操作命令

============================================================================

第十步

为了完成数据库的映射,就需要构建一个sqlalchemy对象,就需要在外围创建一个exts拓展包,所有通过pip安装的都放在这个exts包里,在exts包中的__init__.py文件中创建操作数据库的操作:
"""
from flask_sqlalchemy import SQLAlchemy

#创建一个sqlalchemy类对象来完成python中对象和数据库中表的迁移映射
db = SQLAlchemy()
"""
在app文件夹中的__init__.py文件中,完成sqlalchemy的初始化:
"""
from exts import db

db.init_app(app)
"""
这样db就和app关联起来了,就相当于给db通电了

在配置文件settings.py中添加连接数据库的配置:
"""
SQLALCHEMY_DATABASE_URI="mysql+pymysql://root:123456@39.106.150.87:3306/py1901"
SQLALCHEMY_TRACK_MODIFICATIONS = True
"""

第十一步

在models包中,创建user_model.py模型,在文件中创建一个User类,这个类需要继承db.model构成一个模型类对应数据库中的一张表,来完成映射:
"""
from exts import db

class User(db.model):
    __tablename__ = 'user'
    
      id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    username = db.Column(db.String(10), nullable=False)
    password = db.Column(db.String(12), nullable=False)
    phone = db.Column(db.String(11), nullable=False, unique=True)
    usertype = db.Column(db.String(20))

    def __str__(self):
        return self.username

"""

第十二步

因为manager的内置命令只有两个:runserver、shell,为了执行与数据库完成映射,所以需要给manager添加命令,在在启动文件manage.py添加:
"""
from exts import db
from app.models import user_model 


migrate=Migrate(app=app,db=db)
manager.add_command('db',MigrateCommand)
"""
使用命令:python manage.py db init
         python manage.py db migrate - --迁移
         python manage.py db upgrade
         来完成python模型与数据库之间的迁移映射
  • 8
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值