我正在尝试使用烧瓶形式填充sqlalchemy请求结果的选择字段.
这是代码:
def possible_book():
return Book.query.with_entities(Book.id).all()
class AuthorForm(Form):
familyname = TextField('familyname', [validators.Required()])
firstname = TextField('firstname', [validators.Required()])
book_list = QuerySelectField('book_list',query_factory=possible_book,get_label='title',allow_blank=True)
Run Code Online (Sandbox Code Playgroud)
这是模板:
<form action="" method="post" name="edit_author" enctype="multipart/form-data">
{{form.hidden_tag()}}
<p>Veuillez donner son prénom (obligatoire) : {{form.firstname(value=author.firstname)}}</p>
<p>Nom de famille (obligatoire) : {{form.familyname(value=author.familyname)}}</p>
<p>Livre : {{form.book_list}}</p>
<p><input type="submit" value="Envoyer"></p>
</form>
Run Code Online (Sandbox Code Playgroud)
查看:
@app.route('/edit_author/<number>', methods = ['GET', 'POST'])
def edit_author(number):
if number == 'new':
author = []
else:
author = Author.query.filter_by(id = number).first()
form = AuthorForm()
if form.validate_on_submit():
a = Author(firstname= form.firstname.data, familyname= form.familyname.data)
a.books = …Run Code Online (Sandbox Code Playgroud) 在我当前的项目中,我的索引页面显示了几个 torrent,每个 torrent 都有一个启动或停止 torrent 的按钮。
我使用表单和循环创建页面,因此表单始终具有相同的名称。但我需要知道用户单击了哪个按钮才能知道要停止哪个 torrent!
这是模板:
{% block content %}
<h1>Hello, {{user}} !</h1>
{% for torrent in torrents %}
<form action="/index" method="post" name="torrent">
{{torrent.control.hidden_tag()}}
<p><a href='/torrent/{{torrent.id}}'>{{torrent.name}}</a> is {{torrent.status}} and {{torrent.progress}} % finished. <input type="submit" value="Start / Stop">
</p>
</form>
{% endfor %}
Run Code Online (Sandbox Code Playgroud)
这是视图:
@app.route('/index', methods = ['GET', 'POST'])
def index():
user = 'stephane'
torrents = client.get_torrents()
# for each torrent, we include a form which will allow start or stop
for torrent in torrents:
torrent.control = TorrentStartStop() …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用flask-uploads扩展上传文件。问题是,每次似乎我找到解决方案时,我都会资助另一个问题,而且我觉得文档很神秘。
这是代码:
from flask.ext.uploads import UploadSet, IMAGES, configure_uploads
import os
from werkzeug import secure_filename
photos = UploadSet('photos', IMAGES)
configure_uploads(app, photos)
@app.route('/edit_book', methods = ['GET', 'POST'])
def edit_book():
form = BookForm()
if form.validate_on_submit():
b.summary = form.summary.data
if request.method == 'POST':
try:
secure_filename = photos.save(request.files['cover'])
except:
print 'not ok'
db.session.add(b)
db.session.commit()
return redirect('/admin')
return render_template('edit_book.html', title = 'Add a book', form = form )
Run Code Online (Sandbox Code Playgroud)
当前错误仅给出:
KeyError: 'images'.
Run Code Online (Sandbox Code Playgroud)
我什么都没有了!使用此扩展是否有任何问题,因为我在任何地方都找不到合适的代码来提供完整的解决方案(从上传开始到将文件保存在文件夹中)。
预先感谢您的帮助。
<!-- extend from admin layout -->
{% extends "admin.html" %} …Run Code Online (Sandbox Code Playgroud)