标签: sqlalchemy

设置Flask-SQLAlchemy

试图在Windows上设置Flask和SQLAlchemy,但我遇到了问题.

我一直在使用Flask-SQLAlchemy以及PostgreSQL 9.1.4(32位)和Psycopg2包.以下是代码的相关部分,我创建了一个基本的用户模型,以测试我的数据库是否正在连接,并提交.

三位代码将来__init__.py自我的应用程序models.py文件,文件和我的settings.py文件.

当我尝试打开我的交互式提示并尝试以下链接中的代码时,我得到一个ProgrammingError异常(链接中的详细信息).

可能是什么导致了这个?我按照文档进行了操作,我很困惑我做错了什么,特别是考虑到我在Windows上也使用了带有psycopg2和PostgreSQL的Django.

python sqlalchemy flask flask-sqlalchemy

1
推荐指数
1
解决办法
6781
查看次数

sqlselect()最多需要2个参数(给定3个)

我没有看到第三个论点.当我运行此命令时:

used_emails = [row.email for row
    in db.execute(halo4.select([halo4.c.email],[halo4.c.email!='']))]
Run Code Online (Sandbox Code Playgroud)

它说:

TypeError:select()最多需要2个参数(给定3个)

第三个论点在哪里?

python sqlalchemy

1
推荐指数
1
解决办法
1199
查看次数

取得SQLalchemy Instrumented属性的值

如何InstrumentedAttribute在SQLalchemy中获取对象的值:

(Pdb) ResultLine.item_reference_1
<sqlalchemy.orm.attributes.InstrumentedAttribute object at 0x793dc90>
Run Code Online (Sandbox Code Playgroud)

上面的语句向我显示sqlalchemy对象。

我真正需要的是与之相关的价值。

python sqlalchemy

1
推荐指数
1
解决办法
4793
查看次数

sqlalchemy中的RIGHT()函数

我可以在SQLAlchemy中实现以下内容,

SELECT * FROM TABLE where right(COULUMN_CODE,2) = 'AX'
Run Code Online (Sandbox Code Playgroud)

here RIGHT( )- 返回具有指定字符数的字符串的右侧部分

是否有RIGHT函数的SQLAlchemy实现?

python sqlalchemy

1
推荐指数
1
解决办法
1984
查看次数

如何在Flask SQLAlchemy的表中搜索多对多的关系?

我有以下型号和表格:

chat_members = db.Table('chat_members',
    db.Column('user_id', db.Integer, db.ForeignKey('user.id')),
    db.Column('chat_id', db.Integer, db.ForeignKey('chat.id'))
)

class chat(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    start_date = db.Column(db.DateTime)
    chat_memb = db.relationship('user', secondary=chat_members, backref=db.backref('members', lazy='dynamic'))  
    chat_line = db.relationship('line', backref='chat_line', lazy='dynamic')

    def __repr__(self):
        return '<Chat %r>' % (self.id)

class user(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    user_email = db.Column(db.String, unique=True)
    user_password = db.Column(db.String)
    lines = db.relationship('line', backref='line_author', lazy='dynamic')

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

class line(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    published_date = db.Column(db.DateTime)
    chat_id = db.Column(db.Integer, db.ForeignKey('chat.id'))
    sent_by = db.Column(db.Integer, db.ForeignKey('user.id')) …
Run Code Online (Sandbox Code Playgroud)

python sqlalchemy flask

1
推荐指数
1
解决办法
3870
查看次数

如何在sqlalchemy查询中使用函数验证密码?

如何在sqlalchemy查询中使用函数验证密码?在

class PersonModel(Base):
    __tablename__ = 'persons'
    username = Column(String(30), nullable=False)
    email = Column(String(75), nullable=False)
    password = Column(String(128), nullable=False)
Run Code Online (Sandbox Code Playgroud)

我使用存储的密码sha256_crypt.encrypt("password_string")http://pythonhosted.org/passlib /我可以验证sha256_crypt.verify(password_to_check_against, hash)

(试过像

person = session.query(PersonModel).filter(and_(PersonModel.username.like(username), PersonModel.password.like(sha256_crypt.encrypt(password_string)))).first()
Run Code Online (Sandbox Code Playgroud)

但它不起作用=> sha256_crypt.encrypt(password_string)生成不同于db的相同密码的值,我不能==只使用sha256_crypt.verify来自网站的运算符)如何在我的查询中注入这个?

python sqlalchemy python-2.7

1
推荐指数
1
解决办法
1805
查看次数

在Pyramid中创建sqlalchemy查询对象的字典

我是Python和Pyramid的新手.在我用来了解更多有关Pyramid的测试应用程序中,我想查询数据库并根据sqlalchemy查询对象的结果创建字典,最后将字典发送到变色龙模板.

到目前为止,我有以下代码(工作正常),但我想知道是否有更好的方法来创建我的字典.

...
index = 0
clients = {}
q = self.request.params['q']
for client in DBSession.query(Client).filter(Client.name.like('%%%s%%' % q)).all():
    clients[index] = { "id": client.id, "name": client.name }
    index += 1
output = { "clients": clients }

return output
Run Code Online (Sandbox Code Playgroud)

在学习Python时,我发现了一种在for循环语句中创建列表的好方法,如下所示:

myvar = [user.name for user in users]
Run Code Online (Sandbox Code Playgroud)

那么,我遇到的另一个问题是:是否有像上面这样的"一行"方式来创建sqlalchemy查询对象的字典?

提前致谢.

python sqlalchemy pyramid

1
推荐指数
1
解决办法
1544
查看次数

What is the proper model definition for SQLAlchemy to avoid error message : AttributeError: 'InstrumentedList' object has no attribute'?

I am creating a Point of Sales application, with the typical data hierarchy : Company->branches->Sales->SaleData, this is the model definition (Note that, the User model already prepare and working as a flask-login compatible model) :

from flask_sqlalchemy import SQLAlchemy
from main import db
from collections import OrderedDict


class Users(db.Model,object):                                                                                                                                                                                                     
    '''                                                                                                                                                                                                                           
    Adding object to trun sqlalchemy into json object                                                                                                                                                                             
    '''                                                                                                                                                                                                                           
    id = db.Column(db.Integer, primary_key=True)                                                                                                                                                                                  
    username = db.Column(db.String(60), unique=True)                                                                                                                                                                              
    firstname = db.Column(db.String(20))                                                                                                                                                                                          
    lastname = db.Column(db.String(20))                                                                                                                                                                                           
    password = db.Column(db.String)                                                                                                                                                                                               
    email = db.Column(db.String(100), unique=True) …
Run Code Online (Sandbox Code Playgroud)

python sqlalchemy flask flask-login

1
推荐指数
1
解决办法
2941
查看次数

AttributeError:'tuple'对象没有使用Flask SqlAlchemy属性'drivername'

我正在尝试使用Flask-SqlAlchemy连接到MySQL数据库,这是我的参数:

SQLALCHEMY_DATABASE_URI = 'mysql://root:pass@127.0.0.1/database?charset=utf8'
Run Code Online (Sandbox Code Playgroud)

但是当我转到网址时,我收到此错误:

AttributeError:'tuple'对象没有属性'drivername'

如果我更改SQLALCHEMY_DATABASE_URIsqlite:///db.sqlite,它可以正常工作.

我错过了什么?

注意:我也试过mysql+mysqldb://,没有任何运气.

python mysql sqlalchemy flask flask-sqlalchemy

1
推荐指数
1
解决办法
1497
查看次数

适用于MYSQL的ASCII和Unicode中的SQLAlchemy大字符串

在python类中,SQLAlchemy您必须为字符串变量指定最大字符长度。例如,url = Column(String(200))我有兴趣存储一个大字符串,但是当我尝试设置时mytextfield = Column(String(2**30)),出现以下错误:

OperationalError: (OperationalError) (1074, "Column length too big for column 'textfield' (max = 21845); use BLOB or TEXT instead") '\nCREATE TABLE users (\n\tid INTEGER NOT NULL AUTO_INCREMENT, \n\tname VARCHAR(50), \n\tfullname VARCHAR(50), \n\tpassword VARCHAR(12), \n\ttextfield VARCHAR(2147483648), \n\tPRIMARY KEY (id)\n)\n\n' ()

如何保持ascii编码但增加SQLAlchemy对象Base类中字符串的最大长度?如果我要切换为使用unicode,mytextfield = Column(UnicodeText(2**30))我是否认为这将默认为utf-8,并且不会增加标准英文字符的存储大小?如果它是在utf-8中,并且我从SQL数据库中检索了一个条目,text = u'my text here'即使最初输入的内容是文本,该文本也将等效于text = 'my text here'

这是我当前的代码:

from sqlalchemy import create_engine
engine = create_engine("mysql://user:password@host/database")

from sqlalchemy.ext.declarative import declarative_base

Base = …
Run Code Online (Sandbox Code Playgroud)

python mysql unicode ascii sqlalchemy

1
推荐指数
1
解决办法
3312
查看次数