标签: flask-sqlalchemy

pip install sqlalchemy-migrate崩溃并且莫名其妙地烧伤

在Windows 8 x64下的virtualenv中运行Python,通过flask megatutorial工作.有一个非常全面的设置指南,我要做的一件事就是安装sqlalchemy-migrate.

我按照指南中给出的顺序执行此操作,没有跳过任何步骤.随着virtualenv活跃,注意使用正确的解释器,我运行:

pip install sqlalchemy-migrate
Run Code Online (Sandbox Code Playgroud)

在这一点上它会嘎吱作响并最终返回:

Installed c:\users\erez\code\flask-megatutorial\flask\build\sqlalchemy-migrate\pbr-0.5.23-py2.7.egg

running egg_info

creating pip-egg-info\sqlalchemy_migrate.egg-info

writing requirements to pip-egg-info\sqlalchemy_migrate.egg-info\requires.txt

writing pip-egg-info\sqlalchemy_migrate.egg-info\PKG-INFO

writing top-level names to pip-egg-info\sqlalchemy_migrate.egg-info\top_level.txt

writing dependency_links to pip-egg-info\sqlalchemy_migrate.egg-info\dependency_links.txt

writing entry points to pip-egg-info\sqlalchemy_migrate.egg-info\entry_points.txt

[pbr] Processing SOURCES.txt

writing manifest file 'pip-egg-info\sqlalchemy_migrate.egg-info\SOURCES.txt'

warning: LocalManifestMaker: standard file '-c' not found

error: The system cannot find the file specified
Run Code Online (Sandbox Code Playgroud)

而现在我被卡住了.:)用谷歌搜索出来的.似乎与PBR有关,无论是什么,但没有解决方案.还有一个pip.log文件,但它太大了,不能粘贴在这里,我知道StackOverflow对要点皱眉.如果你认为它会有所帮助,仍然乐意将它粘贴到一个要点上.

非常感激任何的帮助.

python pip flask flask-sqlalchemy

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

Flask-SQLAlchemy'OR'查询具有可变数量的参数

我有一个高级搜索界面,它将key:value对发送到我的flask应用程序.关键是要搜索的表中的列,值是要比较的条件.

下面是项目的示例查询,其中k是Projects表中的'tags'列,v是要搜索的标记.

projects = Projects.query.filter(getattr(Projects, k).like('%{}%'.format(v)))
Run Code Online (Sandbox Code Playgroud)

如果用户提交两个要搜索的标记,则v将是两个标记的列表.然后,我可以像这样查询数据库:

if len(v) == 2:
    v1, v2 = v[0], v[1]
    projects = Projects.query.filter(or_(
        getattr(Projects, k).like('%{}%'.format(v1)),
        getattr(Projects, k).like('%{}%'.format(v2)))
    )
Run Code Online (Sandbox Code Playgroud)

是否有更好的方法来执行"OR"查询,其中标记的数量(在此示例中)是可变的?

如何编写代码以便它可以处理2个标签或10个标签?

python sqlalchemy flask flask-sqlalchemy

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

如何在Flask SQLAlchemy中双向建立与辅助backref的数据库关系?

我创建了一个User模型和Kid模型。在孩子模型中,我有:

parents = db.relationship('User', secondary=kids_users,
                        backref=db.backref('kids', lazy='dynamic'))
Run Code Online (Sandbox Code Playgroud)

辅助表定义如下所示:

kids_users = db.Table('kids_users',
  db.Column('kid_id', db.Integer(), db.ForeignKey('kid.id')),
  db.Column('user_id',db.Integer(), db.ForeignKey('user.id')))
Run Code Online (Sandbox Code Playgroud)

我的User模型不包含与此相关的任何内容,因为此代码可以完成所有操作。

情况是这样:当我查询时,some_kid.parents它返回了一个不错的数组:

[<User u'someuser@yahoo.com'>]
Run Code Online (Sandbox Code Playgroud)

但是当我查询周围的另一种方式时,some_user.kids它会返回一些sql查询:

SELECT kid.id AS kid_id, kid.first_name AS kid_first_name, kid.middle_name AS kid_middle_name, kid.last_name AS kid_last_name, kid.dob AS kid_dob, kid.profile_pic_small AS kid_profile_pic_small, kid.profile_pic_smallish AS kid_profile_pic_smallish, kid.profile_pic_med AS kid_profile_pic_med, kid.profile_pic_large AS kid_profile_pic_large, kid.gender AS kid_gender, kid.current_group AS kid_current_group, kid.status AS kid_status, kid.status_time AS kid_status_time, kid.potty_trained AS kid_potty_trained, kid.pending AS kid_pending, kid.scholarship AS kid_scholarship, …
Run Code Online (Sandbox Code Playgroud)

python sqlalchemy has-many flask flask-sqlalchemy

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

TypeError:__ init __()得到一个意外的关键字参数'password'

我无法找出导致此错误的原因

TypeError: __init__() takes at most 2 arguments (3 given)
Run Code Online (Sandbox Code Playgroud)

这是指向

@user_blueprint.route('/login', methods=['GET', 'POST'])
def login():
    if g.user.is_authenticated:
        flash("You are already Logged in", 'warning')
        return redirect(url_for('members'))
    error = ""
    form = LoginForm()
    if request.method == 'POST':
        if form.validate_on_submit():
            user = User.query.filter_by(username=form.username.data).first()
            if user is not None and bcrypt.check_password_hash(user.password, form.password.data):
                login_user(user, remember=form.remember.data)
                flash('You are sucessfuly Logged in', 'success')
                return redirect(url_for('members'))
            else:
                error = "You have entered an incorrect username and password"
    return render_template("front/login.html", forms=form, error=error)
Run Code Online (Sandbox Code Playgroud)

LoginForm如下所示:

class LoginForm(Form):
    username …
Run Code Online (Sandbox Code Playgroud)

flask wtforms flask-sqlalchemy flask-login flask-wtforms

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

Python Shell不起作用,不运行解释器(Flask)

我一直在跟随Miguel Grinberg的Flask Web Development,并在尝试创建数据库角色时遇到麻烦.本书建议我使用以下命令来运行shell并生成python shell并创建数据库角色:

http://i.stack.imgur.com/BdMx5.png

但是当相同的命令它没有给我一个python shell,我可以编写命令.它只是启动服务器并运行程序,让我无法执行创建数据库角色所需的命令.

http://i.stack.imgur.com/czTqF.png

在这两种情况下,hello.py只是一个带有相关数据库类的简单烧瓶程序.不知道为什么会这样.我已经激活了虚拟环境并按照文本中的描述完成了所有操作.有什么想法吗?

这是hello.py中的全部代码

    # imports
    from flask.ext.sqlalchemy import SQLAlchemy
    from flask import Flask, render_template
    import os
    from flask.ext.wtf import Form
    from wtforms import StringField, SubmitField
    from wtforms.validators import Required
    from flask.ext.bootstrap import Bootstrap

    # App and DB config
    basedir = os.path.abspath(os.path.dirname(__file__))
    app = Flask(__name__)
    bootstrap = Bootstrap(app)
    app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///' + os.path.join(basedir, 'data.sqlite')
    app.config['SQLALCHEMY_COMMIT_ON_TEARDOWN'] = True
    db = SQLAlchemy(app)

    # classes
    class Role(db.Model):
        __tablename__ = 'roles'
        id = db.Column(db.Integer, primary_key = True) …
Run Code Online (Sandbox Code Playgroud)

python shell flask flask-sqlalchemy

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

无法呈现类型&lt;class'sqlalchemy.dialects.postgresql.base.UUID'&gt;的元素

我在第57行看到了Flask-common的以下代码片段:

id = db.Column(UUID, default=lambda: str(uuid.uuid4()), primary_key=True)
Run Code Online (Sandbox Code Playgroud)

所以我想尝试一下并在我的应用中使用它models.py(因为我更喜欢uuid为id输入类型)

from flask import Flask
from flask.ext.sqlalchemy import SQLAlchemy
from sqlalchemy.dialects.postgresql import UUID
import uuid

from app import db

class CostCenter(db.Model):
    __tablename__ = "costcenter"

    id = db.Column('id', UUID(as_uuid=True), default=lambda: str(uuid.uuid4()), primary_key=True)
    name = db.Column('name', db.Text)

    def __init__(self, name):
        self.name = name

    def __repr__(self):
        return '<id {}>'.format(self.id)
Run Code Online (Sandbox Code Playgroud)

但是当我尝试运行时python manage.py db upgrade,会导致错误:

  File "build/bdist.linux-x86_64/egg/sqlalchemy/sql/compiler.py", line 190, in __init__                                                          
  File "build/bdist.linux-x86_64/egg/sqlalchemy/sql/compiler.py", line 213, in process                                                           
  File "build/bdist.linux-x86_64/egg/sqlalchemy/sql/visitors.py", line …
Run Code Online (Sandbox Code Playgroud)

python postgresql sqlalchemy flask flask-sqlalchemy

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

通过sqlalchemy添加对象会引发KeyError:'SQLALCHEMY_TRACK_MODIFICATIONS'

这是我的第一个python应用程序,我一直在努力使迁移与flask和sqlalchemy正常工作.我终于得到了它的工作,但现在当我运行应用程序时,我在向使用迁移代码修改的表中添加对象时出现错误.这是在db.session.add(newTag)上抛出异常的视图

    def put(self):
    json_data = request.get_json(force=True)

    foo = json_data['foo'] if 'foo' in json_data else ''
    bar = json_data['bar'] if 'bar' in json_data else ''
    baz = json_data['baz'] if 'baz' in json_data else ''
    try:
        boo = parse(json_data['boo'])
        far = parse(json_data['far'])
    except:
        return jsonify(result='Invalid date')

    faz = json_data['faz'] if 'faz' in json_data else ''

    if faz == '':
        return jsonify(result="faz is missing")

    newTag = Tags(faz, baz, foo, bar, boo, far, True)
    db.session.add(newTag)
    db.session.commit()
    return {'Success, tag' + str(newTag.id) + ' created'} …
Run Code Online (Sandbox Code Playgroud)

python flask flask-sqlalchemy

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

无法使用sqlachemy查询json列

我正在尝试使用PostgreSQL的json列中的查询flask-sqlalchemy。这是我的代码

house_ = House()
results = house_.query.filter(
            House.information['branch_name'].astext == 'release0'
            ).all()
Run Code Online (Sandbox Code Playgroud)

我不确定是怎么了。我尝试使用.cast(Unicode)而不是astext

出现如下错误:

NotImplementedError: Operator 'getitem' is not supported on this expression
Run Code Online (Sandbox Code Playgroud)

python postgresql sqlalchemy python-2.7 flask-sqlalchemy

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

减少Flask-Admin中列的大小

有没有办法限制ModelView列的大小(长度/宽度)?我正在使用WYSIWYG编辑器,这会创建非常长的文本,因此使得ModelView的列非常长.

这是它的样子的图片.查看最后一列的右侧.它甚至比屏幕截图所能处理的还要长.

在此输入图像描述

python flask flask-sqlalchemy twitter-bootstrap flask-admin

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

如何在<td>标签中给出烧瓶删除方法的超链接

如何为烧瓶删除方法提供超链接.这是代码HTML代码.我用HTML编写了超链接.那么,如何在烧瓶路线中传递url.我正在使用Flask框架,我试图从数据库中删除一个条目.下面的代码给出了这个错误:"请求的URL不允许使用该方法."

{% extends "base.html" %}
{% block head %}
{{super()}}
{% endblock %}
{% block navbar %}
{{super()}}
{% endblock %}
{% block content %}
<div class="row">
<ol class="breadcrumb">
<li><a href="#">
<em class="fa fa-home"></em> </a></li>
<li class="active">Users>View/Edit</li>
</ol>
</div><!--/.row-->
<div class="row">
<div class="col-md-12">
<table class="table table-striped table-hover">

<thead>
<tr>
    <th>
        Name
    </th>
    <th>
       Email
   </th>
   <th>
       Address
   </th>
   <th>
       Aadharimage
   </th>

   <th>
       Password
   </th>
   <th>
      Locations
   </th>
   <th>
      Dateofsub
   </th>
   <th>
     Lastlogin
   </th>
   <th>
     Control
</th>
<th>
Delete
</th>
</tr> …
Run Code Online (Sandbox Code Playgroud)

html python flask flask-sqlalchemy flask-restless

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