Flask-SQLAlchemy框架使用

举报
王建峰 发表于 2021/11/19 02:26:52 2021/11/19
【摘要】 以MySQL+SQLAlchemy的组合来对数据库进行管理,而Flask-SQLAlchemy是一种开发框架,对SQLAlchemy进行了一个简单的封装。下面使用Flask-SQLAlchemy的方法对数据库进行管理。   #config.py#数据库配置信息HOSTNAME = '127.0.0.1' #PORT ...

以MySQL+SQLAlchemy的组合来对数据库进行管理,而Flask-SQLAlchemy是一种开发框架,对SQLAlchemy进行了一个简单的封装。下面使用Flask-SQLAlchemy的方法对数据库进行管理。

 


  
  1. #config.py
  2. #数据库配置信息
  3. HOSTNAME = '127.0.0.1' #
  4. PORT = '3306'
  5. DATABASE = 'mydb'
  6. USERNAME = 'root'
  7. PASSWORD = 'wangjian'
  8. DB_URI = 'mysql+pymysql://{}:{}@{}:{}/{}'.format(USERNAME,PASSWORD,HOSTNAME,PORT,DATABASE)
  9. #URI格式:dialect+driver://username:password@host:port/database
  10. #URI格式:dialect+driver://username:password@host:port/database
  11. # dialect是数据库的实现,比如MySQL、PostgreSQL、SQLite,并且转换成小写。
  12. # driver是Python对应的驱动,如果不指定,会选择默认的驱动,比如MySQL的默认驱动是MySQLdb。
  13. # username是连接数据库的用户名,
  14. # password是连接数据库的密码,
  15. # host是连接数据库的域名,
  16. # port是数据库监听的端口号,
  17. # database是连接哪个数据库的名字。

 


  
  1. #app.py
  2. from flask import Flask
  3. from flask_sqlalchemy import SQLAlchemy
  4. from config import DB_URI
  5. #需要安装依赖包 pymysql用来操作mysql、SQLAlchemy是数据库的ORM框架、Flask-SQLAlchemy是对SQLAlchemy的进一步抽象
  6. #pip install pymysql
  7. #pip install SQLAlchemy
  8. #pip install flask-sqlalchemy
  9. app = Flask(__name__)
  10. app.config['SQLALCHEMY_DATABASE_URI'] = DB_URI #载入配置
  11. #创建一个数据库引擎
  12. db = SQLAlchemy(app)
  13. #ORM类 与数据库表示映射关系
  14. class User(db.Model):
  15. id = db.Column(db.Integer, primary_key=True)
  16. username = db.Column(db.String(80), unique=True)
  17. email = db.Column(db.String(120), unique=True)
  18. def __init__(self, username, email):
  19. self.username = username
  20. self.email = email
  21. def __repr__(self):
  22. return '<User %s>' % self.username
  23. db.drop_all() #删除所有表
  24. db.create_all() #创建所有表
  25. #实例化一个ORM对象
  26. admin = User(username='admin',email='admin@example.com')
  27. guest = User('guest','guest@example.com')
  28. #通过session来完成ORM到数据库表格的映射
  29. # 添加记录
  30. db.session.add(admin)
  31. db.session.add(guest)
  32. db.session.commit()
  33. #查询数据库
  34. # users = User.query.all() #查询所有记录
  35. # print( type(users) )
  36. # for user in users:
  37. # print(user)
  38. # user = User.query.get(2) #get方法利用主键进行查询
  39. # print(type(user.id))
  40. # print(user.email)
  41. # users = User.query.filter_by(username="guest").first() # 使用条件过滤,最后得到一个记录的查询对象
  42. # print(users.email)
  43. users = User.query.all() #查询所有记录
  44. print( type(users) ) #打印删除记录中的email值
  45. for user in users:
  46. print(user.email)
  47. #删除操作
  48. db.session.delete(guest)
  49. db.session.commit()
  50. users = User.query.all() #查询所有记录
  51. print( type(users) ) #打印删除记录中的email值
  52. for user in users:
  53. print(user.email)
  54. if __name__ == '__main__':
  55. app.run()

  
  1. <class 'list'>
  2. admin@example.com
  3. guest@example.com
  4. <class 'list'>
  5. admin@example.com

 

文章来源: blog.csdn.net,作者:hinzer,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/feit2417/article/details/86590669

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。