标签:engine Base sqlalchemy create SQL django alchemy session mysql
settings配置:
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'sqlalchemy_test', 'USER': 'root', 'PASSWORD': '******', 'HOST': '127.0.0.1', 'PORT': '3306' } }
创建数据库:
# coding: utf-8 from sqlalchemy.ext.declarative import declarative_base from sqlalchemy import create_engine, Column, Integer, String from sqlalchemy.orm import sessionmaker, scoped_session engine = create_engine('mysql+mysqldb://root:password@localhost:3306/sqlalchemy_test?charset=utf8mb4') # 在同一个线程中,有 scoped_session 的时候,返回的是同一个 Session 对象。 # 在多线程下,即使通过 scoped_session 创建Session,每个线程下的 Session 都是不一样的,每个线程都有一个属于自己的 Session 对象,这个对象只在本线程下共享。 db_session = scoped_session(sessionmaker(autocommit=False, autoflush=False, bind=engine)) Base = declarative_base() Base.query = db_session.query_property() class User(Base): __tablename__ = 'user' id = Column(Integer, primary_key=True, autoincrement=True) name = Column(String(20)) def init_db(): Base.metadata.create_all(engine)
MySQL 使用 mysql-python 作为默认 DBAPI。有许多 MySQL DBAPI 可用,mysqlclient 是一个原生驱动,推荐选择它。
# default engine = create_engine('mysql://scott:tiger@localhost/foo') # mysqlclient (a maintained fork of MySQL-Python) engine = create_engine('mysql+mysqldb://scott:tiger@localhost/foo') # PyMySQL engine = create_engine('mysql+pymysql://scott:tiger@localhost/foo')
标签:engine,Base,sqlalchemy,create,SQL,django,alchemy,session,mysql 来源: https://www.cnblogs.com/wang-ovo/p/16157310.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。