大家好,我是讯享网,大家多多关注。
烧瓶化学
连接数据库
创建模型
数据操作
烧瓶化学
Flask-SQLAlchemy是一个Flask扩展,它简化了在Flask程序中使用SQLACHEMY的操作。SQLAlchemy是一个强大的关系数据库框架,它支持各种数据库后端。SQLAlchemy使用数据库原生SQL提供高级ORM和低级函数。
连接数据库
和SQLAlchemy一样,定义数据库连接信息,然后将定义的数据库连接信息添加到app.config中,键值为sqlalchemy _ database _ uri
从烧瓶进口烧瓶
从flask_sqlalchemy导入sqlalchemy
app = Flask(__name__)
app . config[& # 39;SQLALCHEMY _ DATABASE _ URI & # 39;] = ‘MySQL+pymysql://root @ localhost:3306/CCE?charset = utf8 & # 39#将数据库连接信息添加到app.config
app . config[& # 39;SQLALCHEMY _ TRACK _ MODIFICATIONS & # 39;] = False #解决警告问题。
Db = SQLAlchemy(app) #获取一个SQLAlchemy对象,传入要绑定的app。
@ app . route(& # 39;/’)
def home():
return & # 39Hello Word!’
app . run(host = & # 39;127.0.0.1’端口=80,调试=真)
创建模型
创建模型,直接获取我们的db对象作为模型定义的基类,不需要declarative_base作为基类;
从烧瓶进口烧瓶
从flask_sqlalchemy导入sqlalchemy
app = Flask(__name__)
app . config[& # 39;SQLALCHEMY _ DATABASE _ URI & # 39;] = ‘MySQL+pymysql://root @ localhost:3306/CCE?charset = utf8 & # 39#将数据库连接信息添加到app.config
app . config[& # 39;SQLALCHEMY _ TRACK _ MODIFICATIONS & # 39;] =假
Db = SQLAlchemy(app) #获取SQLAlchemy对象
类用户(数据库。型号):#继承db。模型,类似于SQLAlchemy的基础。
_ _ tablename _ _ = & # 39用户& # 39;
id = db。列(db。整数,primary_key=True,
Autoincrement=True) #对于SQLAlchemy中需要手动导入的列、整数等东西,flask_sqlalchemy全部放入这个db对象中,无需手动导入;
用户名= db。列(db。字符串(32),可空=假)
类文章(db。型号):
_ _ tablename _ _ = & # 39文章& # 39;
id = db。列(db。整数,primary_key=True,autoincrement=True)
title = db。列(db。字符串(32),可空=假)
内容= db。列(db。文本,可空=假)
uid = db。列(db。整数,db。foreign key(& # 39;users.id & # 39))
user = db . relationship(& # 39;用户& # 39;,backref = & # 39第& # 39;)
db.drop_all()
db.create_all()
@ app . route(& # 39;/’)
def home():
return & # 39Hello Word!’
app . run(host = & # 39;127.0.0.1’端口=80,调试=真)
数据操作
一切都是db。flask_sqlalchemy中,不需要sessionmaker初始化连接窗口,而是直接用db.session来初始化窗口;
从烧瓶导入烧瓶,请求
从flask_sqlalchemy导入sqlalchemy
app = Flask(__name__)
app . config[& # 39;SQLALCHEMY _ DATABASE _ URI & # 39;] = ‘MySQL+pymysql://root @ localhost:3306/CCE?charset = utf8 & # 39#将数据库连接信息添加到app.config
app . config[& # 39;SQLALCHEMY _ TRACK _ MODIFICATIONS & # 39;] =假
Db = SQLAlchemy(app) #获取SQLAlchemy对象
类用户(数据库。型号):#继承db。模型,类似于SQLAlchemy的基础。
_ _ tablename _ _ = & # 39用户& # 39;
id = db。列(db。整数,primary_key=True,
Autoincrement=True) #对于SQLAlchemy中需要手动导入的列、整数等东西,flask_sqlalchemy全部放入这个db对象中,无需手动导入;
用户名= db。列(db。字符串(32),可空=假)
类文章(db。型号):
_ _ tablename _ _ = & # 39文章& # 39;
id = db。列(db。Integer,primary_key=True,autoincrement=True)
title = db。列(db。字符串(32),可空=假)
内容= db。列(db。文本,可空=假)
uid = db。列(db。整数,db。foreign key(& # 39;users.id & # 39))
user = db . relationship(& # 39;用户& # 39;,backref = & # 39第& # 39;)
db.drop_all()
db.create_all()
@ app . route(& # 39;/’)
def home():
#数据插入
用户=用户(用户名= & # 39;cce & # 39)
Article = Article(title = & # 39;Python核心编程& # 39;,内容= & # 39;asdasdsad & # 39,用户=用户)
db . session . add(article)# db . session不需要像SQLAlchemy中那样初始化session对象;
db.session.commit()
#数据检索(推荐或建议使用flask_sqlalchemy,db.session提供的查询方法)
result = user . query . first()# user . query = = db . session = = session . query(user)#三种方式
#数据修改
username = request . args . get(& # 39;用户名& # 39;,无)
update = request . args . get(& # 39;更新& # 39;,无)
result=db.session.query(用户)。过滤器(User.username==username)。首先()
打印(结果)
如果结果:
结果.用户名=更新
db.session.commit()
返回字符串(结果.用户名)
app . run(host = & # 39;127.0.0.1’端口=80,调试=真)
本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://51itzy.com/42700.html