转载自:http://www.cnblogs.com/wongbingming/p/6831448.html
一、库安装
Flask-SQLAlchemy 2
SQLAlchemy 1.0.8
二、进入venv
三、切换到项目Sample\ 文件夹,进入manager.py 的shell
python manager.py shell
四、创建data.sqlite数据库
from app import db from app import models db.create_all()
执行完最后一条命令后,在Sample\app下就会生成一个data.sqlite文件
五、在Pycharm中导入数据库,方便可视化
Data Source -> Sqlite(Xerial)
然后进行如下操作
点击OK后,会发现已经导入成功了
六、在shell模式下操作数据
1. 增(写入数据)
>>> from app import db >>> from app import models >>> from app.models import User,Role >>> admins = Role(name='administrators') >>> mod = Role(name='moderator') >>> db.session.add(admins) >>> db.session.add(mod) >>> db.session.commit() #或者两条一起添加 #db.session.add([admins,mod])
注意,对数据库增删改查,都必须进行commit()方法才能写入数据库。
现在来查看下,到底有没有写入?双击roles表,看到了我们写入的两行记录
2. 删(删除数据)
# 说明一下:表的每行记录都是一个对象 # 例如上面:admins和mod都是对象,name是其属性 >>> admins.name u'administrators' # 为什么说明这点,因为删除行就是删除对象 >>> db.session.delete(admins) >>> db.session.commit() # 删除成功
3.改(修改数据)
# 通过对属性重新赋值,添加,提交事务进行修改数据 mod.name='moderators-new' db.session.add(mod) db.session.commit()
4. 查(查询数据)
# query返回的是包含所有记录的查询对象(BaseQuery) >>> Role.query <flask_sqlalchemy.BaseQuery object at 0x0000000004936E10> # query之后如果需要对记录进行条件筛选,要加上过滤函数,返回过滤后的查询对象(BaseQuery),可以多次执行过滤函数 >>> Role.query.filter_by(name='admins') <flask_sqlalchemy.BaseQuery object at 0x0000000004A2C438> # 过滤函数之后,加执行函数,返回是记录对象(如果是多行怎么办),赋值为一个对象名Admin >>> Role.query.filter_by(name='administrators').first() <app.models.Role object at 0x0000000004A13F98> #Admin对象的属性,就相当于单元格的值 >>> Admin = Role.query.filter_by(name='administrators').first() >>> Admin.name u'administrators'
5. 表之间的关联
还记得我们之前定义models.py中的Role和User类时,那个relationship吗,关键是参数backref
先来看看我们Role表中的对象admins,name=administrator,id为3
我们知道这个Role表中的id和User表中的role_id(外键)是对应连接的。
那我们在往User表写入数据的时候,还要写入对应的role_id,有个一步到位的方法,就是把Role行的对象作为参数传给定义类时backref的值(这里是role)
他就会自动获取id,并传给role_id
执行代码
>>> Bikmin = User(name='Bikmin',roles=admins) >>> db.session.add(Bikmin) >>> db.session.commit()
看看效果,role_id为3,对应上了
这里说一下,query()和get()的区别
1. query() 返回所有记录的查询对象
2. get() 使用的主键查询
示例
>>> Role.query.get(2).name u'moderator'
返回的是moderator,和id一样
要讲SQLAlchemy查询语句转成原生的SQL语句,只需用str()即可
str(Role.query.filter_by(name='administrators').all())
如果在第一次使用shell会话的时候,创建了行的Python对象,那么再关闭Shell后,再打开,这些对象不能再使用,必须重新创建
admins = Role.query.filter_by(name='administrators').first()
相关推荐
主要介绍了Python使用Flask-SQLAlchemy连接数据库操作,简单介绍了flask、Mysql-Python以及Flask-SQLAlchemy的安装方法,并结合实例形式分析了基于Flask-SQLAlchemy的数据库连接相关操作技巧,需要的朋友可以参考下
主要为大家详细介绍了利用flask sqlalchemy实现分页效果,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
Flask-SQLAlchemy包下载及安装,此类用于控制SQLAlchemy与一个或多个Flask应用程序的集成。 根据您初始化对象的方式,该对象立即可用或将根据需要附加到Flask应用程序。
主要介绍了Python的Flask框架与数据库连接的教程,是Flask框架学习当中的基本知识,需要的朋友可以参考下
主要介绍了flask框架配置mysql数据库操作,结合实例形式详细分析了flask框架配置mysql数据库及连接访问等相关操作技巧,需要的朋友可以参考下
主要介绍了flask 框架操作MySQL数据库,结合实例形式详细分析了flask框架操作MySQL数据库的连接、表格创建、数据增删改查等相关使用技巧,需要的朋友可以参考下
在flask db命令下,数据库操作作为命令行参数提供。 安装 使用pip安装Flask-Migrate: pip install Flask-Migrate 例 这是一个通过Flask-Migrate处理数据库迁移的示例应用程序: from flask import Flask from ...
python全栈开发项目模板Flask+Flask-Login+SQLAlchemy+WTForms+PyMySQL架构Demo。用于快速构建自己的python全栈web应用。简单实用,代码已调试,完美运行! python全栈开发项目模板Flask+Flask-Login+SQLAlchemy+...
使用Flask-SQLAlchemy管理数据库 Flask-SQLAlchemy是一个Flask扩展,它简化了在Flask应用程序中对SQLAlchemy的使用。SQLAlchemy是一个强大的关系数据库框架,支持一些数据库后端。提供高级的ORM和底层访问数据库的...
flask连接与操作数据库.ipynb
Flask-SQLALchemy-RESTFUL-API, 带有 Flask 和 Sqlalchemy的RESTFUL JSON API 教程和解释http://techarena51.com/index.php/buidling-a-database-driven-restful-json-api-in-python-3-with-flask-flask-restful
python开发web项目,使用flask_sqlachemy连接db2,写入数据库出现中文乱码
Python 使用Flask-SQLAlchemy实现数据的多对关系 Python源码Python 使用Flask-SQLAlchemy实现数据的多对关系 Python源码Python 使用Flask-SQLAlchemy实现数据的多对关系 Python源码Python 使用Flask-SQLAlchemy实现...
技术栈:项目基于 flask_restful 扩展进行RESTful接口开发,运用 flask-sqlalchemy 来简化数据库操作,并以 MySQL 作为后端数据库。 文件结构概览: - Python脚本文件 (.py):23个 - 配置文件 (.xml):6个 - 版本...
Api-flask-graphene-sqlalchemy.zip,在pythonremark中构建graphql api的项目模板:,一个api可以被认为是多个软件设备之间通信的指导手册。例如,api可用于web应用程序之间的数据库通信。通过提取实现并将数据放弃到...
通过python的flask框架,结合分层分模块的思想,在此基础上和sqlalchemy进行集成。完成蓝图中集成sqlalchemy。
本文通篇围绕Flask框架中的数据库操作展开,系统而详细地介绍了数据库查询的必要性、Flask进行数据库操作的方法以及在不同场景下的具体应用,内容涵盖数据库操作的整个过程。文中既有通俗易懂的概念解析,也有可供工程...
Flask-SQLAlchemy教程 使用Flask-SQLAlchemy将Flask应用程序连接到数据库。 教程: : 演示: : 入门分两步在本地进行设置:环境变量用您的值替换.env.example中的值,然后将此文件重命名为.env : FLASK_APP :您的...