欢迎访问 生活随笔!

ag凯发k8国际

当前位置: ag凯发k8国际 > 运维知识 > 数据库 >内容正文

数据库

tornado连接数据库 -ag凯发k8国际

发布时间:2024/10/8 数据库 30 豆豆
ag凯发k8国际 收集整理的这篇文章主要介绍了 tornado连接数据库 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

orm

对象关系映射(英语:(object relational mapping,简称orm,或o/rm,或o/r mapping),是一种程序技术,用于实现面向对象编程语言里不同类型系统的数据之间的转换 。从效果上说,它其实是创建了一个可在编程语言里使用的–“虚拟对象数据库”。

通过 orm 可以不用关心后台是使用的哪种数据库,只需要按照 orm 所提供的语法规则去书写相应的代码, orm 就会自动的转换成对应对应数据库的 sql 语句

sqlalchemy连接数据库

安装: mysql
安装python包: pymysql、sqlalchemy

pip install -i https://pypi.douban.com/simple pymysql
pip install -i https://pypi.douban.com/simple sqlalchemy

在项目新建models

db.py 是一些配置信息
auth.py 是定义表字段

from sqlalchemy import create_engine from sqlalchemy.ext.declarative import declarative_base from sqlalchemy.orm import sessionmaker # 数据库数据 host = '127.0.0.1' port = '3306' database = 'tornado' username = 'admin' password ='root110qwe' # 数据连接 url db_url = 'mysql pymysql://{}:{}@{}:{}/{}?charset=utf8'.format(username,password,host,port,database) # 连接数据库 engine = create_engine(db_url) bsae = declarative_base(engine) # 创建会话 用于数据(增删查改) session = sessionmaker(bind=engine) # 测试 if __name__ == '__main__':connection = engine.connect()result= connection.execute('select 1')print(result.fetchone()) from datetime import datetime from sqlalchemy import column, integer, string, datetime from models.db import bsae # 类来表示数据库里面的表 class user(bsae):__tablename__ = 'user'id = column(integer,primary_key=true,autoincrement=true)username = column(string(20),nullable=false)password = column(string(50))creatime = column(datetime,default=datetime.now) if __name__ == '__main__':# 创建好的 module 映射到数据库中bsae.metadata.create_all()

数据增删查改

需要建立会话

from sqlalchemy.orm import sessionmaker session = sessionmaker(engine) session = session()

这个我使用ipython中进行练习

注意路径

add 是添加一条数据, add_all 添加多条数据

person = user(username='buodng', password='qwe123') s.add(person) s.commit()

rows = session.query(user).all() rows = session.query(user).first()

query 就是查询的意思,在 sqlalchemy 中也用来查询数据

all 是查询所有的意思
first 是查询第一条数据

update

rows = session.query(user).filter(user.username=='budong').update({user.password:1}) session.commit()

delete

rows = session.query(user).filter(user.username=='budong')[0] print(rows) session.delete(rows) session.commit()

总结

以上是ag凯发k8国际为你收集整理的tornado连接数据库的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得ag凯发k8国际网站内容还不错,欢迎将ag凯发k8国际推荐给好友。

  • 上一篇:
  • 下一篇:
网站地图