flask----后续

蓝图

每一个view都有一个蓝图

Blueprint 是一种组织一组相关视图及其他代码的方式。与把视图及其他 代码直接注册到应用的方式不同,蓝图方式是把它们注册到蓝图,然后在工厂函数中 把蓝图注册到应用。

from flask import Blueprint

user_bp = Blueprint('user',__name__)

这里创建了一个名称为 'auth' 的 Blueprint 。和应用对象一样, 蓝图需要知道是在哪里定义的,因此把 __name__ 作为函数的第二个参数。 url_prefix 会添加到所有与该蓝图关联的 URL 前面。

使用 app.register_blueprint() 导入并注册 蓝图。新的代码放在工厂函数的尾部返回应用之前。

模型

1。flask-script
pip install flask-script

使用里面的Manager进行命令得到管理和使用:
manager = Manager(app=app)

manager.run()  ---->启动

使用命令在终端:
python3 app.py runserver    ---->Runs the Flask development server

python3 app.py runserver -h 0.0.0.0 -p 5001

2. 搭建数据库:

mtv:
model  模型  ----》数据库
template 模板
view  视图

-

安装:
pip3 install pymysql        建公路

pip3 install flask-sqlalchemy    实现ORM映射

pip3 install flask-migrate     发布命令工具

步骤:
1。配置数据库的连接路径
# mysql+pymysql://user:password@hostip:port/databasename
SQLALCHEMY_DATABASE_URI = 'mysql+pymysql://root:root:密码@127.0.0.1:3306/flaskday05'
2。flask-sqlalchemy的搭建:
创建包ext
   __init__.py中添加:

   db = SQLAlchemy()   ---->必须跟app联系

   def create_app():
        ....
        db.init_app(app)

        return app
3. flask-migrate的配置:
migrate = Migrate(app=app, db=db)
manager.add_command('db', MigrateCommand)
4.创建模型:
  models.py

  模型就是类,经常称作模型类

  class User(db.Model):      ------> user表
    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    username = db.Column(db.String(15), nullable=False)
    password = db.Column(db.String(12), nullable=False)
    phone = db.Column(db.String(11), unique=True)
    rdatetime = db.Column(db.DateTime, default=datetime.now)

  常见的数据类型:
  Integer        整型
  String(size)   字符串类型,务必指定大小
   Text          长文本类型
  DateTime       日期时间
   Float         浮点类型
  Boolean        布尔类型
  PickleType     存储pickle类型  主要跟序列化有关
  LargeBinary    存储大的二进制类型

 可选的:
  primary_key=True   主键
  autoincrement=True  自增
  nullable=False      不允许为空
  unique=True         唯一
  default=datetime.now  默认值  可以设置成当前系统时间或者其他的值

使用命令

5.使用命令:
    a. ************敲黑板***************
       在app.py 中导入模型:from apps.user.models import User

    b. 在终端使用命令:db
        python3 app.py db init   -----》 产生一个文件夹migrations
        python3 app.py db migrate -----> 自动产生了一个版本文件
         项目
          | ---apps
          | ---ext
          | ---migrations    python3 app.py db init     只需要init一次
                   |---versions   版本文件夹
                        |---71edde7ee937_.py    ---》  python3 app.py db migrate  迁移
                        |---cc0dca61130f_.py
                                                      python3 app.py db upgrade 同步
                                                      python3 app.py db downgrade 降级

# 添加
# 3.将user对象添加到session中(类似缓存)
db.session.add(user)
# 4.提交数据
db.session.commit()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值