Flask对模型类的操作

1. 创建一个config文件夹,里面在创建一个settings.py文件写入配置

class DefaultConfig():
	SQLALCHEMY_DATABASE_URI = 'mysql+pymysql://root:[email protected]:3306/h2111p7'
    SQLALCHEMY_TRACK_MODIFICATIONS = False
    SQLALCHEMY_ECHO = True

2. 创建一个models文件夹,里面在创建一个model.py文件,写入模型类

from flask_sqlalchemy import SQLAlchemy

# 去app.py文件中初始化
db = SQLAlchemy()

class UserModel(db.Model):
	id = db.Column(db.Integer, primary_key=True, autoincrement=True, comment='ID')
	username = db.Column(db.String(32), nullable=False, default='', comment='用户名')
	password = db.Column(db.String(64), nullable=False, default='', comment='密码')
	sex = db.Column(db.Boolean, nullable=False, default=True, comment='性别 0:男 1:女')

3. 在创建一个app.py文件写入代码

from flask import Flask
from models.models import db
from config.settings import DefaultConfig

 # 初始化Flask
app = Flask(__name__)

app.config.from_object(DefaultConfig)
print(app.config)

 # 初始化数据库
db.init_app(app)

if __name__ == ' __main__ ':
	app.run()
  1. 一定要在根目录下创建一个manage.py迁移文件
from flask_migrate import Manager
from flask_migrate import MigrateCommand, Migrate
from models.model import db
from app import app

# 生成命令行管理对象
manage = Manager(app)
# 生成迁移对象
migrate = Migrate(app, db)
manage.add_command('db', MigrateCommand)

if __name__ == ' __main__ ':
	manage.run()

  1. 迁移命令
python manage.py db init
python manage.py db migrate
python manage.py db upgrade

4. 模型类的增、删、改、查

  1. 首先在app.py里注册一个蓝图
from order import order_bp
app.register_blueprint(border_bp)
  1. 创建一个order.py文件写入代码
from flask import Buleprint
from flask_restful import Api, Resource, marshal, fields
from models.model import UserModel, db

# 初始化类方法
order_bp = Blueprint('order_bp', __name__, url_prefix='/order')

# 初始化Api
api = Api(order_bp)

# 对数据库的增、删、改、查方法
class OrderView(Resoure):
	def get(self):
		# 添加数据
        # ul = UserModel(
        #     username='wangwu',
        #     password='111',
        #     sex=False
        # )
        # us = UserModel(
        #     username='lisi',
        #     password='111',
        #     sex=False
        # )
        # # db.session.add(ul)  # 添加一条数据
        # db.session.add_all([ul, us])  # 添加多条数据
        # db.session.commit()


        """查看数据"""
        # 查看所有数据
        # query_set = UserModel.query.all()
        # print(query_set)

        # 查询单个数据
        # query_set = UserModel.query.get(2)
        #
        # return marshal(query_set, {
        #     'id': fields.Integer,
        #     'username': fields.String,
        #     'password': fields.String,
        #     'sex': fields.Integer
        # })

        """修改数据"""
        # 1、
        # UserModel.query.filter_by(username='zhangsan').update({'password': '222'})

        # 2、
        # query_put = UserModel.query.filter_by(username='zhangsan').first()
        # query_put.password = '333'

        # 修改所有
        # UserModel.query.update({'password': '222'})

        # db.session.commit()
        # return '修改成功'

        """删除数据"""
        # UserModel.query.filter_by(username='zhangsan').delete()

        # 删除所有
        UserModel.query.delete()
        
		# 提交事务
        db.session.commit()
        return '删除成功'		


# 配置路由
api.add_resource(OrderView, '/order')

常见的数据库类型

数据类型 解释
Integer 一个整数(*****)
String (size) 有长度限制的字符串(*****)
Text 一些较长的 unicode 文本(*****)
DateTime 表示为 Python datetime 对象的 时间和日期(*****)
Float 存储浮点值
Boolean 存储布尔值
PickleType 存储为一个持久化的 Python 对象
LargeBinary 存储一个任意大的二进制数据
DECIMAL 小数值(10,2)

你可能感兴趣的:(flask,python,后端)