标签: flask-extensions

如何在不使用ctrl-c的情况下停止烧瓶应用

我想通过使用flask-script来实现一个可以停止烧瓶应用的命令.我已经搜索了一段时间的解决方案.因为框架不提供"app.stop()"API,所以我很好奇如何编写代码.我正在研究Ubuntu 12.10和Python 2.7.3.

python flask flask-extensions

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

如何在flask-login中跟踪当前用户?

我试图在flask-login的视图中使用当前用户.所以我试着g object

我分配flask.ext.login.current_user给g对象

@pot.before_request
def load_users():
   g.user = current_user.username
Run Code Online (Sandbox Code Playgroud)

如果用户是正确的,它可以工作.但是当我使用错误的凭据进行注册或登录时,我收到此错误

AttributeError: 'AnonymousUserMixin' object has no attribute 'username'

请问我在哪里错了...

python flask python-2.7 flask-login flask-extensions

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

如何使用Flask-Security寄存器视图?

有人使用Flask-Security扩展进行身份验证吗?如何使注册视图起作用?

http://packages.python.org/Flask-Security/customizing.html

我指的是上面的链接.

 @app.route('/register', methods=['GET'])
 def register():
     return render_template('security/register_user.html')
Run Code Online (Sandbox Code Playgroud)

我不想扩展默认类,我只想在我的站点布局中包装默认注册视图,所以我这样做了.

{% extends "layout.html" %}
{% block title %}upload{% endblock %}
{% block body %}

{% from "security/_macros.html" import render_field_with_errors, render_field %}
{% include "security/_messages.html" %}
<h1>Register</h1>
<form action="{{ url_for_security('register') }}" method="POST" name="register_user_form">
{{ register_user_form.hidden_tag() }}
{{ render_field_with_errors(register_user_form.email) }}
{{ render_field_with_errors(register_user_form.password) }}
{% if register_user_form.password_confirm %}
   {{ render_field_with_errors(register_user_form.password_confirm) }}
{% endif %}
{{ render_field(register_user_form.submit) }}
</form>
{% include "security/_menu.html" %}

{% endblock %}
Run Code Online (Sandbox Code Playgroud)

我收到以下错误?

werkzeug.routing.BuildError
BuildError: ('security.register', {}, None)
Run Code Online (Sandbox Code Playgroud)

python flask flask-extensions flask-security

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

Flask-Login - 如何获取会话ID

我正在使用烧瓶开发服务器环境与Flask,Gevent和web socket进行项目.我用过flask_login.这里

  1. 如何获得每个连接的唯一会话ID?
  2. 我想将数据存储SessionID在数据库中,并在客户端断开连接后将其删除.
  3. 如何获得总活动连接

    from flask_login import * 
    login_manager = LoginManager()
    login_manager.setup_app(app)
    
    @app.route("/", methods=["GET", "POST"]) 
    def login():
        login_user([username], remember):    
    
    @app.route("/logout") 
    @login_required 
    def logout(): 
        logout_user() 
    
    Run Code Online (Sandbox Code Playgroud)

flask python-2.7 flask-sqlalchemy flask-login flask-extensions

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

Flask-Login中使用的"is_authenticated"方法有什么意义?

我正在研究Flask Mega-Tutorial,我遇到了这段代码:

class User(db.Model):
    id = db.Column(db.Integer, primary_key = True)
    nickname = db.Column(db.String(64), unique = True)
    email = db.Column(db.String(120), unique = True)
    role = db.Column(db.SmallInteger, default = ROLE_USER)
    posts = db.relationship('Post', backref = 'author', lazy = 'dynamic')

    def is_authenticated(self):
        return True

    def is_active(self):
        return True

    def is_anonymous(self):
        return False

    def get_id(self):
        return unicode(self.id)

    def __repr__(self):
        return '<User %r>' % (self.nickname)
Run Code Online (Sandbox Code Playgroud)

is_authenticated,is_active和is_anonymous对我来说似乎很奇怪 - 他们何时会返回除预定义值以外的任何内容?

有人可以向我解释为什么Flask-Login让我使用这些看似无用的方法吗?

python flask web flask-login flask-extensions

14
推荐指数
2
解决办法
6162
查看次数

无法在Flask-admin上创建模型

我在Flask上创建了一个简单的博客,我正在尝试使用Flask-Admin来管理我的帖子.如果我去管理区域,我可以看到来自数据库的所有帖子的列表,但是当我尝试创建一个新帖子时,我得到了下一个错误:

Failed to create model. __init__() takes exactly 4 arguments (1 given)
Run Code Online (Sandbox Code Playgroud)

这是我的帖子模型:

class Post(db.Model):
    __tablename__ = 'news'
    nid = db.Column(db.Integer, primary_key = True)
    title = db.Column(db.String(100))
    content = db.Column(db.Text)
    created_at = db.Column(db.DateTime)

    def __init__(self, title, content):
        self.title = title.title()
        self.content = content
        self.created_at = datetime.datetime.now()
Run Code Online (Sandbox Code Playgroud)

这是我将模型添加到UI的代码:

from flask import Flask, session
from models import db, Post
from flask.ext.admin import Admin
from flask.ext.admin.contrib.sqlamodel import ModelView

app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql://root:pass@localhost/appname'
db.init_app(app)

admin = Admin(app)
admin.add_view(ModelView(Post, db.session))
Run Code Online (Sandbox Code Playgroud)

我可以通过管理面板编辑模型,但不能创建新模型.我知道我错过了一些非常愚蠢的东西,但我无法弄清楚它是什么.

编辑:如果我没有在模型上实现init …

python flask flask-sqlalchemy flask-extensions

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

如何让eclipse/pydev高兴地看到Windows上的烧瓶扩展?

我偶然发现了这篇文章并遵循了所有步骤.但pyDev不会看到我的烧瓶扩展,这真的很烦人.只有一件事(我认为这是关键):

Touch /site-packages/flaskext/__init__.py

Touch我认为是unix util.在Windows上是否有相同的功能?

python eclipse pydev flask flask-extensions

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

如何使用烧瓶访问表单数据?

我的login终点看起来像

@app.route('/login/', methods=['GET', 'POST'])
def login():
    if request.method == 'POST':
        print request.form # debug line, see data printed below
        user = User.get(request.form['uuid'])
        if user and hash_password(request.form['password']) == user._password:
            login_user(user, remember=True)  # change remember as preference
            return redirect('/home/')
    else:
        return 'GET on login not supported'
Run Code Online (Sandbox Code Playgroud)

当我使用测试时curl,GET调用看起来像

? ~PYTHONPATH ? ? 43± ? curl http://127.0.0.1:5000/login/
GET on login not supported
Run Code Online (Sandbox Code Playgroud)

但是POST,我无法访问表单数据并获取HTTP 400

? ~PYTHONPATH ? ? 43± ? curl -d "{'uuid': 'admin', 'password': …
Run Code Online (Sandbox Code Playgroud)

python flask flask-login flask-extensions

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

如何禁用Flask-Cache缓存

我在使用Flask-Cache时遇到了问题.我需要在需要的基础上进行缓存,方法是定义一个配置变量,用户可以设置该变量来启用或禁用缓存.

我正在使用Flask-Cache进行缓存

cache = Cache(config = {'CACHE_TYPE':'redis'})

app = Flask(名字)

初始化缓存

cache.init_app(APP)

清除缓存

使用app.app_context():

 cache.clear()
Run Code Online (Sandbox Code Playgroud)

并使用缓存(在views.py中)作为

@ app.route('/',methods = ['GET'])

@validate_access(current_user,"read")

@要求登录

@ cache.memoize()

def get_values(id):

  return get_values()
Run Code Online (Sandbox Code Playgroud)

在使用Flask-Cache时,我没有获得正确的启用/禁用缓存的方法.是否有一种标准方式可以完全启用/禁用缓存行为.

python caching flask flask-extensions flask-cache

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

flask-admin没有显示foreignkey列

class Parent(db.Model):
    id = db.Column(db.Integer, primary_key = True)
    name = db.Column(db.String(120))

    def __repr_(self):
        return '<Parent %r>' % (self.name)

admin.add_view(ModelView(Parent, db.session))


class Child(db.Model):
    id = db.Column(db.Integer, primary_key = True)
    name = db.Column(db.String(120))
    parent = db.Column(db.Integer, db.ForeignKey(Parent))

admin.add_view(ModelView(Child, db.session))
Run Code Online (Sandbox Code Playgroud)

你好 -

上面的代码是我试图创建的flask-admin页面的示例.目标是在Child的创建页面上有一个名称文本框和一个下拉选择父项.

通过上述设置,只有名称字段.父下拉框丢失.

任何想法如何实现它?

python flask flask-sqlalchemy flask-extensions

10
推荐指数
2
解决办法
7174
查看次数