小编ale*_*ayr的帖子

在Flask中使用隐藏字段_method更改请求方法

开始学习Python和Flask作为学习练习,来自PHP/Symfony2,我可以在表单中添加一个隐藏的_method字段,用DELETE或PUT覆盖POST方法.

似乎Flask本身并不支持这种做法,而且我一直在讨论包括http://flask.pocoo.org/snippets/38/在内的各种想法,这些想法有效,但涉及将覆盖放在表单动作中,而不是而不是作为隐藏字段,IMO使URL看起来不雅观.

上述地址的注释中有一个片段,它使_method从路由角度工作,但正如在那里讨论的那样,如果您尝试访问视图中的request.form,则会导致请求挂起.

有人有解决方法吗?如果没有,我会把所有的东西都当作POST来处理,但能够找到一种让它工作的方法会很好.

干杯.


编辑:这是任何想要看一看的人的代码:

模板:

<form action="{{ url_for('login') }}" method="POST">
    <input type="hidden" name="_method" value="PUT">
    <input class="span12" name="email" type="text" placeholder="E-mail address" value="{{ email }}">
    <input class="span12" name="password" type="password" placeholder="Your password">
    <a href="{{ url_for('reset_password') }}" class="forgot">Forgot password?</a>
    <div class="remember">
        <input id="remember-me" type="checkbox">
        <label for="remember-me">Remember me</label>
    </div>
    <input class="btn-glow primary login" type="submit" name="submit" value="Log in">
</form>
Run Code Online (Sandbox Code Playgroud)

应用程序/ __ init__.py

from flask import Flask
from werkzeug.wrappers import Request

class MethodRewriteMiddleware(object):
    def __init__(self, app, input_name='_method'):
        self.app = app
        self.input_name = …
Run Code Online (Sandbox Code Playgroud)

python werkzeug flask

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

加载条跟踪已完成的Ember.js的HTTP请求

我一直在环顾四周,而且自己没有写一个基本的,我找不到一个已经存在的Ember库,它在页面顶部显示一个小的加载行,当所有的http请求都已完成时页面转换(无论是图像加载,JSON被提取等).

对于Angular有这个:http://chieffancypants.github.io/angular-loading-bar/,但想知道Ember是否已经有任何选择.

干杯.

编辑:我发现这篇文章也是关于一个jQuery插件,我想这可以改编:http://tutorialzine.com/2013/09/quick-tip-progress-bar/.仍然热衷于听到有人知道已经集成到Ember请求生命周期中的任何事情.

ember.js

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

一个应用程序中的不同UI /模板

有一种情况我想有两种类型的界面.一个是默认应用程序,另一个是登录屏幕等的全屏模式.

玩了一会儿之后,我想我会尝试在应用程序模板中使用两个命名出口:

{{outlet main}}

{{outlet alternative}}
Run Code Online (Sandbox Code Playgroud)

然后我有一个主模板:

{{partial "wrapper"}}

{{outlet}}

{{partial "footer"}}
Run Code Online (Sandbox Code Playgroud)

哪个被渲染{{outlet main}}(我使用的是Ember App Kit,所以下面相当于App.ApplicationRoute = Ember.Route.extend({...):

export default Ember.Route.extend({

    renderTemplate: function() {
        this._super();
        this.render('master', {
            outlet: 'main',
            into: 'application'
        });
    },

});
Run Code Online (Sandbox Code Playgroud)

现在,问题在于我想要吹掉主模板,并且完全具有与页面不同的外观和感觉,例如全屏登录页面,没有包装器/侧边栏或页脚.

我以为我可以{{outlet main}}在LoginRoute中使用disconnectOutlet 停用,只需将新的登录模板推送到{{outlet alternative}}:

export default Ember.Route.extend({

  renderTemplate: function() {
    this.disconnectOutlet({
        outlet: 'main',
        into: 'application'
    });

    this.render('login', {
        outlet: 'alternative',
        into: 'application'
    });
  },

});
Run Code Online (Sandbox Code Playgroud)

但是,这{{outlet main}}仍然会被渲染(我想是由于ApplicationRoute - LoginRoute的renderTemplate没有覆盖它?),登录模板在它下面渲染(也就是说,在页面下方/折叠下方).

有谁知道如何在Ember中完成这个UI的完整切换?

ember.js

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

标签 统计

ember.js ×2

flask ×1

python ×1

werkzeug ×1