Flask-SQLAlchemy框架使用
【摘要】
以MySQL+SQLAlchemy的组合来对数据库进行管理,而Flask-SQLAlchemy是一种开发框架,对SQLAlchemy进行了一个简单的封装。下面使用Flask-SQLAlchemy的方法对数据库进行管理。
#config.py#数据库配置信息HOSTNAME = '127.0.0.1' #PORT ...
以MySQL+SQLAlchemy的组合来对数据库进行管理,而Flask-SQLAlchemy是一种开发框架,对SQLAlchemy进行了一个简单的封装。下面使用Flask-SQLAlchemy的方法对数据库进行管理。
-
#config.py
-
#数据库配置信息
-
HOSTNAME = '127.0.0.1' #
-
PORT = '3306'
-
DATABASE = 'mydb'
-
USERNAME = 'root'
-
PASSWORD = 'wangjian'
-
DB_URI = 'mysql+pymysql://{}:{}@{}:{}/{}'.format(USERNAME,PASSWORD,HOSTNAME,PORT,DATABASE)
-
-
#URI格式:dialect+driver://username:password@host:port/database
-
#URI格式:dialect+driver://username:password@host:port/database
-
# dialect是数据库的实现,比如MySQL、PostgreSQL、SQLite,并且转换成小写。
-
# driver是Python对应的驱动,如果不指定,会选择默认的驱动,比如MySQL的默认驱动是MySQLdb。
-
# username是连接数据库的用户名,
-
# password是连接数据库的密码,
-
# host是连接数据库的域名,
-
# port是数据库监听的端口号,
-
# database是连接哪个数据库的名字。
-
#app.py
-
from flask import Flask
-
from flask_sqlalchemy import SQLAlchemy
-
from config import DB_URI
-
-
-
#需要安装依赖包 pymysql用来操作mysql、SQLAlchemy是数据库的ORM框架、Flask-SQLAlchemy是对SQLAlchemy的进一步抽象
-
#pip install pymysql
-
#pip install SQLAlchemy
-
#pip install flask-sqlalchemy
-
-
-
app = Flask(__name__)
-
app.config['SQLALCHEMY_DATABASE_URI'] = DB_URI #载入配置
-
-
#创建一个数据库引擎
-
db = SQLAlchemy(app)
-
-
#ORM类 与数据库表示映射关系
-
class User(db.Model):
-
id = db.Column(db.Integer, primary_key=True)
-
username = db.Column(db.String(80), unique=True)
-
email = db.Column(db.String(120), unique=True)
-
-
def __init__(self, username, email):
-
self.username = username
-
self.email = email
-
-
def __repr__(self):
-
return '<User %s>' % self.username
-
-
-
db.drop_all() #删除所有表
-
db.create_all() #创建所有表
-
-
#实例化一个ORM对象
-
admin = User(username='admin',email='admin@example.com')
-
guest = User('guest','guest@example.com')
-
-
#通过session来完成ORM到数据库表格的映射
-
# 添加记录
-
db.session.add(admin)
-
db.session.add(guest)
-
db.session.commit()
-
-
#查询数据库
-
# users = User.query.all() #查询所有记录
-
# print( type(users) )
-
# for user in users:
-
# print(user)
-
-
# user = User.query.get(2) #get方法利用主键进行查询
-
# print(type(user.id))
-
# print(user.email)
-
-
# users = User.query.filter_by(username="guest").first() # 使用条件过滤,最后得到一个记录的查询对象
-
# print(users.email)
-
-
users = User.query.all() #查询所有记录
-
print( type(users) ) #打印删除记录中的email值
-
for user in users:
-
print(user.email)
-
-
#删除操作
-
db.session.delete(guest)
-
db.session.commit()
-
-
-
users = User.query.all() #查询所有记录
-
print( type(users) ) #打印删除记录中的email值
-
for user in users:
-
print(user.email)
-
-
if __name__ == '__main__':
-
app.run()
-
<class 'list'>
-
admin@example.com
-
guest@example.com
-
<class 'list'>
-
admin@example.com
文章来源: blog.csdn.net,作者:hinzer,版权归原作者所有,如需转载,请联系作者。
原文链接:blog.csdn.net/feit2417/article/details/86590669
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)