跪求python使用sqlalchemy操作mssql数据库的步骤

queensking 2015-06-17 03:24:28
# pyodbc
engine = create_engine('mssql+pyodbc://scott:tiger@mydsn')

# pymssql
engine = create_engine('mssql+pymssql://scott:tiger@hostname:port/dbname')

这是我在sqlalchemy上看到的两句话
我在flask框架下面试图创建一个数据库 代码如下
app=Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI']='mssql+pymssql://sa:0@localhost:1433/py1db'

app.config['SQLALCHEMY_COMMIT_ON_TEARDOWN']=True
db=SQLAlchemy(app)


class Role(db.Model):
__tablename__ = 'roles'
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(64), unique=True)
users = db.relationship('User', backref='role', lazy='dynamic')

def __repr__(self):
return '<Role %r>' % self.name


class User(db.Model):
__tablename__ = 'users'
id = db.Column(db.Integer, primary_key=True)
username = db.Column(db.String(64), unique=True, index=True)
role_id = db.Column(db.Integer, db.ForeignKey('roles.id'))

def __repr__(self):
return '<User %r>' % self.username

if __name__ == '__main__':
db.create_all()
却始终创建不出来
...全文
1229 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
CDSoftwareWj 2016-04-08
  • 打赏
  • 举报
回复
记住,是原生的 sqlalchemy 不是 flask的sqlalchemy插件库《flask-sqlalchemy》
CDSoftwareWj 2016-04-08
  • 打赏
  • 举报
回复
flask 里最好直接使用原生的sqlalchemy,这样好单元测试与调试,还有,生成库结构,不要用sqlalchemy 推荐另一个东西 alembic,这个才是正路 flask中使用sqlalchemy是这样用,有一个__init__.py的文件专门放下面这段

#coding: utf-8

from sqlalchemy import create_engine
from sqlalchemy.orm import scoped_session, sessionmaker
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.pool import NullPool
from config import DB_URL


engine = create_engine(DB_URL, pool_recycle=28000, echo=False, poolclass=NullPool)
db = scoped_session(sessionmaker(autocommit=False, autoflush=False, bind=engine))
dbSession = db()

Base = declarative_base()
而其它程序文件则是引用 dbSession进行操作数据库,而Base则负责定义ORM对像 你还有要好好看看 flask对于大型一点的项目目录结构什么的,这样你才会用着比较顺,慢慢来吧
屎克螂 2016-04-07
  • 打赏
  • 举报
回复
表模型是要继承declarative_base的,我不知道你的db.Model是不是就是它 下面是sqlalchemy的使用教程,至于flask怎么配合sqlalchemy玩我就不清楚了 https://www.keakon.net/2012/12/03/SQLAlchemy%E4%BD%BF%E7%94%A8%E7%BB%8F%E9%AA%8C
cxczqfrx 2016-03-21
  • 打赏
  • 举报
回复
from sqlalchemy import create_engine engine = create_engine('mssql+pyodbc://user:password@ODBC连接') 假设 odbc 连接 为 abc 先在数据源里面 新建 名称为 abc 的数据源,记得一定要指定默认数据库,否则可能出错

37,720

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • IT.BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧