文章目录
1.在项目目录下__init__.py编辑:
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
#包含了SQLAlchemy相关的所有操作
db = SQLAlchemy()
def create_app():
app = Flask(__name__)
app.config.from_object('settings.DevelopmentConfig')
db.init_app(app)
return app
2.定义一个views文件夹,创建一个蓝图对象,并且定义路由信息
from flask import blueprints
idx = blueprints.Blueprint('idx',__name__)
@dix.route(‘/index’)
def index():
return 'xxx'
3.注册蓝图
进入项目目录下的__ini__.py,在函数create_app编辑,将蓝图注册到app中
from xx import idx
app.register_blueprint(idx)
4.定义模板
① 在视图函数所在目录下创建templates文件夹,在此文件夹创建html文件
② 在视图中渲染模板
from flask import blueprints,render_template,blueprints
idx = blueprints.Blueprint('idx',__name__)
@dix.route(‘/index’)
def index():
context = {
'key1'value1,
'key2'value2,
'key3'value3,
}
return render_templates('xxx.html', **context)
5.创建配置文件
① 在视图目录下创建settings.py,创建如下内容:
class BaseConfig(object):
# SESSION_TYPE = 'redis' # session类型为redis
# SESSION_KEY_PREFIX = 'session:' # 保存到session中的值的前缀
# SESSION_PERMANENT = True # 如果设置为False,则关闭浏览器session就失效。
# SESSION_USE_SIGNER = False # 是否对发送到浏览器上 session:cookie值进行加密
SQLALCHEMY_DATABASE_URI = "mysql+pymysql://root:123456@127.0.0.1:3306/s8day130db?charset=utf8"
SQLALCHEMY_POOL_SIZE = 5
SQLALCHEMY_POOL_TIMEOUT = 30
SQLALCHEMY_POOL_RECYCLE = -1
# 追踪对象的修改并且发送信号
SQLALCHEMY_TRACK_MODIFICATIONS = False
SECRET_KEY = "sadfasdf" # 设置session时使用
class ProductionConfig(BaseConfig):
pass
class DevelopmentConfig(BaseConfig):
DEBUG = True
class TestingConfig(BaseConfig):
pass
② 进入项目目录下的__ini__.py,在函数create_app编辑,将配置注册到app中
app.config.from_object(“settings.DevelopmentConfig”)
6.定义模型
from sqlalchemy import Column, Integer, String, UniqueConstraint, Index,DateTime,ForeignKey
from s8day130_pro import db
class Users(db.Model):
__tablename__ = 'users'
id = Column(Integer, primary_key=True,autoincrement=True)
name = Column(String(32),nullable=False,unique=True)
pwd = Column(String(32),nullable=False)
7.在当前目录下创建manage.py
from xxx import create_app,db
from flask_script import Manager
from flask_migrate import Migrate,MigrateCommand
app = create_app()
manager = Manager(app)
#创建数据库迁移
Migrate(app, db)
manager.add_command('xxx', MigrateCommand)
if __name__ == '__main__':
manager.run()
8.执行数据库迁移
进入终端manage.py文件目录下执行
python manage.py xxx init
python manage.py xxx migrate # makemigrations
python manage.py xxx upgrade # migrate
9.运行flask
python manage.py runserver