我试图从下拉框中获取值到变量然后存储它.我是Flask的新手,无法在文档中找到任何相关信息.但我不知道如何通过request.form或其他任何原因从下拉列表中获取值.
我的烧瓶代码在app.py中
@app.route('/add', methods=['POST'])
def add_entry():
if not session.get('logged_in'):
abort(401)
title = request.form['title']
link = request.form['link']
shown = request.form['shown']
#I hardcoded the id here too see basic function.
kate = Category.query.filter_by(id = 2).first()
add_into = Entries(title, link, shown, kate)
db.session.add(add_into)
db.session.commit()
Run Code Online (Sandbox Code Playgroud)
这是它的html.
<form action="{{ url_for('add_entry') }}" method=post class="add-entry custom">
<dl>
<dt>Title:
<dd><input type=text size=120 name=title>
<dt>Link:
<dd><input type=text size=120 name=link>
<dt>Shown:
<dd><input type=text size=120 name=shown>
<label for="customDropdown">Category</label>
<select style="display:none;" id="customDropdown">
{% for c in cate %}
{% if c.id == …Run Code Online (Sandbox Code Playgroud) 我有两个Python类Note并Link映射到PostgresQL表. Note有一个外键引用Link,同时Link通过一段JSON文本指向节点.链接指向除Notes 之外的其他东西,但这在这里无关紧要.
Note
+------+------------------+---------+
| ID | NAME | NOTE_ID |
+------+------------------+---------+
| 1 | Alice | 5 |
| 2 | Bob | 20 |
| 3 | Carla | 6 |
+------+------------------+---------+
Link
+------+--------------+
| ID | CONTENT |
+------+--------------+
| ... | ... |
| 5 | {"t":1} |
| 6 | {"t":3} |
| ... | ... |
| 20 | {"t":2} |
+------+--------------+ …Run Code Online (Sandbox Code Playgroud) 我试图在用户向我的站点注册时设置默认角色,当前用户注册时没有设置任何角色.
我创建了我需要的角色,所以我只需要以某种方式定义它.不知道怎么样.
我的代码几乎是快速入门指南中的复制粘贴.无论如何,这里是:
# Define models
roles_users = db.Table('roles_users',
db.Column('user_id', db.Integer(), db.ForeignKey('user.id')),
db.Column('role_id', db.Integer(), db.ForeignKey('role.id')))
class Role(db.Model, RoleMixin):
id = db.Column(db.Integer(), primary_key=True)
name = db.Column(db.String(80), unique=True)
description = db.Column(db.String(255))
class User(db.Model, UserMixin):
id = db.Column(db.Integer, primary_key=True)
email = db.Column(db.String(255), unique=True)
password = db.Column(db.String(255))
active = db.Column(db.Boolean())
confirmed_at = db.Column(db.DateTime())
roles = db.relationship('Role', secondary=roles_users, backref=db.backref('users', lazy='dynamic'))
# Setup Flask-Security
user_datastore = SQLAlchemyUserDatastore(db, User, Role)
security = Security(app, user_datastore)
import users.getUser as getUser
#@app.before_first_request
def create_user():
db.create_all()
user_datastore.create_user(email='my@email.com', password='password')
db.session.commit()
@flask_sijax.route(app, '/') …Run Code Online (Sandbox Code Playgroud) 我正在构建一个使用Flask-SQLAlchemy的烧瓶webapp,我也在考虑使用Flask-Login来处理会话并保护某些视图.
烧瓶登录需要一定的方法,这是我看到的应用程序(特别是各个地方有用,is_authenticated()和is_active().然而,在所有的例子我见过这些方法只是返回一些固定的.如果我想要在查询什么例如,如果我想检查该用户是否确实在表中有一个条目(我使用LDAP登录,所以希望用户能够登录,即使他们没有在表,虽然我需要看看他们是否在那里).
但我不知道是否可以从定义它的类中对表本身进行查询?或者我应该将这些函数放在其他地方(即使在用户类中使用flask-login需要这些方法)?
我遇到了一个问题,我无法从我的Flask应用程序连接到我的RDS MySQL实例.我正在使用SQLAlchemy,一切都在本地工作,但当我将我的代码推送到AWS时,我收到以下错误:
sqlalchemy.exc.OperationalError
OperationalError: (OperationalError) (1045, "Access denied for user 'db_user'@'xx.xx.xx.xxx' (using password: YES)") None None
Run Code Online (Sandbox Code Playgroud)
现在我知道错误不是安全组问题,因为我能够使用MySQL客户端在本地和实例上进行连接.
amazon-web-services amazon-rds flask flask-sqlalchemy amazon-elastic-beanstalk
我想将UniqueConstraint与flask_sqlalchemy一起使用
不幸的是,这个进口声明:
from flask_sqlalchemy import SQLAlchemy, UniqueConstraint
Run Code Online (Sandbox Code Playgroud)
产生这个错误;
ImportError: cannot import name UniqueConstraint
Run Code Online (Sandbox Code Playgroud)
将UniqueConstraint导入flask_sqlalchemy应用程序的正确语法是什么?
谢谢!
我已经定义了模型:
tags = db.Table('tags',
db.Column('tag_id', db.Integer, db.ForeignKey('tag.id')),
db.Column('photo_id', db.Integer, db.ForeignKey('photo.id')),
)
class Tag(db.Model):
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(32), unique=True)
class Photo(db.Model):
id = db.Column(db.Integer, primary_key=True)
sha1sum = db.Column(db.LargeBinary(20), unique=True)
...
tags = db.relationship('Tag', secondary=tags,
backref=db.backref('photos', lazy='dynamic'))
Run Code Online (Sandbox Code Playgroud)
在烧瓶控制器/视图中,我获得了一些输入标签['summer', 'selfie', ...].
问题:
['summ', 'elfi', ...]?使用此设置:
-Development environment
-Flask
-SQLAlchemy
-Postgres
-Possibility Alembic
Run Code Online (Sandbox Code Playgroud)
如果我有一个数据库,其中一些表填充了随机数据.据我所知,Flask-Migrate将使用Alembic,不会保留数据,只保持模型和数据库同步.
但是使用Alembic或者只是删除>创建所有表之间有什么区别?
就像是:
db.create_all()
Run Code Online (Sandbox Code Playgroud)
第二个问题:
当模型中的某些变化时,数据会发生什么变化?数据会丢失吗?或者Alembic可以保留以前填充的数据?
好吧,我的想法是用一些数据填充数据库,然后避免模型更改时丢失任何数据.Alembic是解决方案吗?
或者我需要从.sql文件导入数据,例如,当我更改模型和数据库时?
我试图使用Flask Alchemy和Flask Marshmallow从数据库查询后返回json数据
但是,我的代码总是以某种方式返回空的JSON数据。
这是我的代码:
我的看法 :
@app.route('/customer/', methods=['GET'])
def get_customer():
customers = models.Customer.query.all()
#c = models.Customer.query.get(1) # Get Customer with an ID of 1
customers_schema = CustomerSchema()
print customers_schema.dump(customers).data
payload = customers_schema.dump(customers).data
resp = Response(response=payload, status=200, mimetype="application/json")
return(resp)
Run Code Online (Sandbox Code Playgroud)
我的模特:
class Customer(db.Model):
id = db.Column(db.Integer, primary_key=True)
nickname = db.Column(db.String(64), index=True, unique=True)
email = db.Column(db.String(120), index=True, unique=True)
address = db.relationship('Address', backref='customer', lazy='dynamic')
def __repr__(self):
return '<Customer %r>' % (self.nickname)
Run Code Online (Sandbox Code Playgroud)
我的架构:
class CustomerSchema(ma.ModelSchema):
class Meta:
model = Customer
Run Code Online (Sandbox Code Playgroud)
这是从控制台看到的结果:
* Debugger is …Run Code Online (Sandbox Code Playgroud) 我需要将一个SQLAlchemy模型类的自定义属性添加到我的Flask-Admin视图中.它做了一些我希望在列列表中显示的计算.
class Withdrawal(db.Model):
__tablename__ = 'withdrawals'
id = db.Column(db.Integer, primary_key=True)
fabric_id = db.Column(db.Integer, db.ForeignKey('fabrics.id'))
fabric = db.relationship('Fabric', backref='withdrawals')
length = db.Column(db.Float)
class Fabric(db.Model):
__tablename__ = 'fabrics'
name = db.Column(db.String(256))
id = db.Column(db.Integer, primary_key=True)
org_length = db.Column(db.Float)
@property
def length(self):
return self.org_length - sum(x.length for x in self.withdrawals)
Run Code Online (Sandbox Code Playgroud)
我将Fabric.length属性添加到我的视图中,column_list但不会在新列中看到值.
class FabricModelView(ModelView):
column_list = ('org_length', Fabric.length)
Run Code Online (Sandbox Code Playgroud)
结果应该是具有计算长度的列,但实际上没有任何内容显示在添加的列中.
所以我的问题是:有没有办法在Flask-Admin视图中向列列表添加自定义属性?
flask-sqlalchemy ×10
flask ×9
python ×6
sqlalchemy ×5
alembic ×1
amazon-rds ×1
flask-admin ×1
flask-login ×1
json ×1
many-to-many ×1
postgresql ×1
session ×1
tagging ×1
transactions ×1