首页 > 数据库 >flask-flask-sqlalchemy使用

flask-flask-sqlalchemy使用

时间:2023-04-11 19:33:51浏览次数:33  
标签:__ sqlalchemy flask app db session 使用 import

1.flask-sqlalchemy使用

1.使用原生sqlalchemy写接口:只要一访问根目录,就会添加这本书

from flask import Flask
from settings import session
from models import Book

app = Flask(__name__)

@app.route('/')
def index():
'''数据暂时写死,后期可以动态添加'''
    session.add(Book(name='三国演义'))
    session.commit()
    session.close()
    return '增加成功'

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

models.py:

from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy import Column, Integer, String

Base = declarative_base()

class Book(Base):
    __tablename__ = 'books'
    id = Column(Integer,primary_key=True)
    name = Column(String(32))

sqlalchemy11.py:

from flask import Flask
from settings import session
from models import Book

app = Flask(__name__)

@app.route('/')
def index():
    session.add(Book(name='三国演义'))
    session.commit()
    session.close()
    return '增加成功'

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

2.使用flask_sqlalchemy继承到flask,这种方法可以将session封装到db对象中,这样db对象中的session和全局的session不会产生错乱:
managepy

from flask_sqlalchemy import SQLAlchemy
from flask import Flask

app = Flask(__name__)
app.config.from_pyfile('settings.py')
# 1.实例化得到对象
db = SQLAlchemy()
# 2.将db注册到app中
db.init_app(app)

@app.route('/')
def index():
    from models import Book
    # 3.视图函数中使用session
    db.session.add(Book(name='红楼梦'))
    db.session.commit()
    return '增加成功'

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

models.py:

from sqlalchemy.ext.declarative import declarative_base
from manage import db
Base = declarative_base()

'''需要继承db.Model'''
class Book(db.Model):
    __tablename__ = 'books'
    '''字段类型也需要从db对象中点'''
    id = db.Column(db.Integer,primary_key=True)
    name = db.Column(db.String(32))

settings.py

SQLALCHEMY_DATABASE_URI = "mysql+pymysql://root:[email protected]:3306/aaa?charset=utf8"
SQLALCHEMY_POOL_SIZE = 5
SQLALCHEMY_POOL_TIMEOUT = 30
SQLALCHEMY_POOL_RECYCLE = -1
# 追踪对象的修改并且发送信号
SQLALCHEMY_TRACK_MODIFICATIONS = False

flask-migrate使用

原生的sqlalchemy不支持修改表。flask-migrate可以实现类似于django的数据库迁移命令:
django中的两步命令:

python manage.py makemigrations  # 记录数据库变化
python manage.py migrate  # 真正将数据同步到数据库

通过flask-migrate我们在flask中也可以实现类似于django中的两步操作

标签:__,sqlalchemy,flask,app,db,session,使用,import
From: https://www.cnblogs.com/ERROR404Notfound/p/17307382.html

相关文章

  • stm32 使用多串口通信调试总结
    前记: stm32使用多个串口通信,这个项目遇到了不少问题,值得反思和深入总结一下。 提纲: 这次的问题,主要有几个部分组成:A多串口的DMA配置,这个需要注意,尽量不要使用同一个DMA通道,这个高速的接收数据的时候会出问题。B串口的tx和rx配置一定要检查好,不要被复用了......
  • 多维数组的使用(三)
    内存解析二维数组本质上是元素类型是一维数组的一维数组。int[][]arr={{1},{2,2},{3,3,3},{4,4,4,4},{5,5,5,5,5}};//1、声明二维数组,并确定行数和列数int[][]arr=newint[4][5];//2、确定元素的值for(inti=0;i<arr.length;i+......
  • flask-sqlalchemy,flask-migrate
    目录flask-sqlalchemy使用flask-migrateflask-sqlalchemy使用把sqlalchemy集成到flask中使用models#导入fromsqlalchemyimportcreate_enginefromsqlalchemy.ext.declarativeimportdeclarative_basefromsqlalchemyimportColumn,Integer,String,Text,ForeignKe......
  • flask之sqlalchemy快速插入数据-scoped_session线程安全-基本增删改查-表模型一对多-
    目录flask之sqlalchemy快速插入数据-scoped_session线程安全-基本增删改查-表模型一对多-多对多-连表查询今日内容1sqlalchemy快速插入数据2scoped_session线程安全2.1基本使用2.2加在类上的装饰器3基本增删改查3.1基本增删改查和高级查询3.2原生sql3.3django中执行原生sq......
  • React+Antd在使用form表单提交DatePicker日期框的时候会出现少八小时的情况
    在使用antd做form表单提交的时候,突然发现了一个很有意思的bug.就是在使用datepicker组件日期框的时候会出现提交后少一天的问题我在网上搜索了许多解决办法,也是困扰了我一天的时间,下面代码.letformData=JSON.parse(JSON.stringify(form.getFieldsValue()));......
  • 使用RunnerGo做接口性能、接口自动化测试
    最近在gitee上看见一款获得GVP(最有价值开源项目)的测试平台RunnerGo,看他们官网介绍包含了接口测试、性能测试、自动化测试。知道他们有saas版可以试用,果断使用了一下,对其中场景管理和性能测试印象深刻,之后也在公司自己安装使用,接下来和大家介绍一下RunnerGo的整体使用情况。登录后的......
  • 使用 selenium 自动化抓取百度案例
    #1.导入fromselenium.webdriver.chrome.serviceimportServicefromseleniumimportwebdriverfromselenium.webdriver.common.byimportByimporttime#下面是阻止闪退的#fromselenium.webdriver.chrome.optionsimportOptions#options=Options()#2.创建......
  • 变量的定义和使用
    变量的定义与使用1.变量的命名规则1.变量名由字母、数字、下划线、组成,但是不能以数字开头2.不能使用javascript关键字3.严格区分大小写username和userName是不同的2.变量声明varvariable1.可以使用一个var声明多个变量比如:varname,age,sex;2.可以在声明变量的......
  • 运算符的使用
    运算符的应用1.赋值运算符varusername="tom";//简单赋值运算符复合运算符a+=b;//相当于a=a+ba-=b;//相当于a=a-ba*=b;//相当于a=a*ba/=b;//相当于a=a/ba%=b;//相当于a=a%ba&=b;//相当于a=a&ba|=b;//相当于a=a|ba^=b;//相当......
  • 在docker安装Python环境提供给其他docker使用
    1.在宿主机新建一个目录2.在app目录下新建一个Dockerfile文件本文永久更新地址:1.在宿主机新建一个目录在宿主机上新建一个目录如app/,在app目录里面导入项目需要依赖的包在项目根目录下输入命令,导出python项目所有的依赖包pipfreeze>requirements.txt把导出的req......