织梦cms电影网站源码,云服务器2008做网站,深圳画册设计公司怎么样,2144网页游戏大厅【1】使用migrate方式进行数据库连接
使用migrate方式进行数据库连接需要在终端分别运行三行代码#xff1a;
#init#xff08;运行一次即可#xff09;#xff08;此db为自己设置的连接数据库的对象,可以修改#xff09;
flask db init
##xff08;将orm模型生成迁移…【1】使用migrate方式进行数据库连接
使用migrate方式进行数据库连接需要在终端分别运行三行代码
#init运行一次即可此db为自己设置的连接数据库的对象,可以修改
flask db init
#将orm模型生成迁移脚本
flask db migrate
#将迁移脚本映射到数据库中
flask db upgrade ① flask db init
执行结果为生成migrations文件夹 ② flask db migrate
#将orm模型生成迁移脚本
flask db migrate如下所示这里会生成850b7054a4f6_.py其实也就是数据模型数据库表迁移脚本。 这时查看数据库只有一个表alembic_verison,并且是空的。
③ flask db upgrade
执行迁移脚本创建数据表并设置版本号。
#将迁移脚本映射到数据库中
flask db upgrade 【2】jinja2的使用
几个标签说明
{% ... %}是声明标签
{{ ... }} 是打印输出表达式文本结果的标签
{# ... #} 用于注释但是不会输出到结果文件中① for 和 if 动态渲染select
select namefloorId idfloorId{% for floor in floors %}option value{{ floor.id }}{% if floor.id room.floor_id %}selected{% endif %}{{floor.name}}/option{% endfor %}
/selectfor循环内部使用说明
loop.index 当前循环的迭代。1索引
loop.index0 当前循环的迭代。0索引
loop.revindex 循环结束的迭代次数1个索引
loop.revindex0 循环结束的迭代次数0索引
loop.first 如果是第一次迭代则为true
loop.last 如果最后一次迭代为真。
loop.length 序列中的项目数。
loop.cycle 一个辅助函数用于在序列列表之间循环。参见下面的说明。
loop.depth 指示渲染当前处于递归循环的深度。从1级开始
loop.depth0 指示渲染当前处于递归循环的深度。从0级开始② include引入模板文件
如下所示在我们页面可以引入公共文件
{% include system/common/header.html %}
//这里为页面主体部分
{% include system/common/footer.html %}③ 表单回显
如下所示在渲染模板的时候带回数据那么在表单页面通过{{ }}即可回显。
bp.get(/edit/int:id)
authorize(system:repair:edit, logTrue)
def edit(id):repair curd.get_by_id(Repair, id)rooms Room.query.all()return render_template(system/repair/edit.html, repairrepair, roomsrooms)输入框回显如下select一样
input typetext value{{ repair.id }} nameid classlayui-inputtextarea 回显如下
textarea typetext nameremark lay-verifyrequired
autocompleteoff placeholder请输入报修说明 classlayui-textarea
{{ repair.remark }}
/textarea【3】使用SQLAlchemy进行CRUD
flask默认提供模型操作但是并没有提供ORM所以一般开发的时候我们会采用flask-SQLAlchemy模块来实现ORM操作。
SQLAlchemy是一个关系型数据库框架它提供了高层的 ORM 和底层的原生数据库的操作。
flask-sqlalchemy 是一个简化了 SQLAlchemy 操作的flask扩展。
SQLAlchemy文档: https://www.sqlalchemy.org/
① 保存对象
roomOrder RoomOrder(user_iduserId, user_nameusername, order_timeorderTime, remarkremark, )
db.session.add(roomOrder)
db.session.commit()② 更新对象
在Flask-SQLAlchemy中可以使用db.session对象的commit()方法来提交数据的修改。
更新单个对象
room Room.query.get(roomOrder.room_id)
room.curr_num room.curr_num - 1
db.session.commit()批量更新对象
RoomOrder.query.filter_by(idid).update({state: 0})
db.session.commit()③ 删除对象
删除单个对象
room Room.query.get(roomOrder.room_id)
db.session.delete(room )
db.session.commit()批量删除对象
res RoomOrder.query.filter_by(name一教).delete()
db.session.commit()④ 查询数据
查询所有记录
# 查询所有记录
datas RoomOrder.query.all()条件查询
# 条件查询
data RoomOrder.query.filter_by(name一教).first()排序查询
# 排序查询升序
datas RoomOrder.query.order_by(RoomOrder.id.desc()).all() #asc()升序