组团学

模型的基本使用

阅读 (232386)

一、安装扩展库

  1. 安装pymysql扩展库
pip install pymysql
  1. 安装flask-sqlalchemy扩展库
pip install flask-sqlalchemy

本扩展库为flask用于操作数据库进行ORM转换

二、代码配置

在manage.py中添加如下代码

from flask import Flask # 导入Flask类 # 导入ORM转换库 from flask_sqlalchemy import SQLAlchemy app = Flask(__name__) # 进行实例化 # 配置数据库 # 设置链接数据库的URI mysql+pymysql://数据库用户名:密码@ip:端口/数据库名 app.config["SQLALCHEMY_DATABASE_URI"] = "mysql+pymysql://lucky:123456@127.0.0.1:3306/lucky" # 进制对象的修改追踪 app.config["SQLALCHEMY_TRACK_MODIFICATIONS"] = False # 创建数据库对象 db = SQLAlchemy(app)

三、表分析

需求: 创建用户表

  1. 一个用户表所需字段

    用户名 密码 性别 年龄 是否删除

  2. 创建模型代码位置

    manage.py (当前阶段为manage.py)

  3. 模型、属性、表之间的关联

    一个模型类 对应数据库中的一张表 一个类属性 对应 表中的一个字段

  4. 创建用户表模型

class User(db.Model): __tablename__ = "user" # 指定表名 id = db.Column(db.Integer, primary_key=True) # 设置主键 username = db.Column(db.String(12)) # 用户名 最大长度12 password = db.Column(db.String(64)) # 用户密码 最大长度 64 sex = db.Column(db.Boolean, default=True) # 性别 默认为True age = db.Column(db.Integer, default=18) # 年龄 默认20岁 isDelete = db.Column(db.Boolean, default=False) # 是否删除 默认不删除

四、创建表

@app.route('/createtable/') def create_table(): db.create_all() return '创建表'

后期不使用当前方式进行表的创建

五、删除表

@app.route('/droptable/') def drop_table(): db.drop_all() return '删除表'

后期不使用当前方式进行表的创建

六、测试数据库

  1. 安装 flask-script扩展库

    什么是Flask-Script?

    Flask-Script用来生成shell命令 为在Flask里编写额外的脚本提供了支持

    安装

    pip install flask-script
  2. 配置

    from flask_script import Manager app = Flask(__name__) # Manager类将追踪所有的在命令行中调用的命令和处理过程的调用运行情况 manager = Manager(app) if __name__ == "__main__": # 将启动Manger实例接收命令行中的命令 manager.run()
  3. 进入到python shell进行测试

    python manage.py shell

  4. 导入User模型类以及db对象

    >>> from manage import User,db
  5. 添加数据

    >>> u = User() # 实例化User模型类 >>> u.username = 'lucky' # 添加用户名 >>> u.password = 123456 # 添加密码 >>> u.sex = True # 添加性别 >>> u.age = 18 # 添加年龄 >>> db.session.add(u) # 进行保存 >>> db.session.commit() # 事务提交
  6. 查询数据

    >>> u = User.query.get(1) # 查询id为1的用户对象 >>> u <User 1> >>> u.username 'lucky'
  7. 修改数据

    >>> u = User.query.get(1) # 查询id为1的用户对象 >>> u.username = '帅气的lucky' # 修改用户名为帅气的lucky >>> db.session.add(u) # 进行保存 >>> db.session.commit() # 事务提交
  8. 删除数据

    >>> u = User.query.get(1) # 查询id为1的用户对象 >>> db.session.delete(u) # 进行删除 >>> db.session.commit() # 事务提交
需要 登录 才可以提问哦