小编22d*_*bre的帖子

如何在烧瓶中使用QuerySelectField?

我正在尝试使用烧瓶形式填充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)

python flask flask-sqlalchemy flask-wtforms

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

如何知道我点击了烧瓶中的哪个按钮?

在我当前的项目中,我的索引页面显示了几个 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)

python flask wtforms flask-wtforms

8
推荐指数
2
解决办法
2万
查看次数

使用flask-uploads上传文件

我正在尝试使用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)

python file-upload flask flask-uploads

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