Questions tagged «flask»

Flask是用于使用Python开发Web应用程序的轻量级框架。

3
全局变量在烧瓶中是线程安全的吗?如何在请求之间共享数据?
在我的应用程序中,公共对象的状态通过发出请求来更改,并且响应取决于状态。 class SomeObj(): def __init__(self, param): self.param = param def query(self): self.param += 1 return self.param global_obj = SomeObj(0) @app.route('/') def home(): flash(global_obj.query()) render_template('index.html') 如果我在开发服务器上运行它,我希望得到1、2、3,依此类推。如果同时从100个不同的客户发出请求,会出问题吗?预期结果将是100个不同的客户端各自看到一个从1到100的唯一数字。或者会发生以下情况: 客户端1查询。self.param增加1。 在执行return语句之前,线程将切换到客户端2。self.param再次增加。 线程切换回客户端1,并向客户端返回数字2,例如。 现在,该线程移至客户端2,并向其返回数字3。 由于只有两个客户,因此预期结果是1和2,而不是2和3。跳过了一个数字。 当我扩展应用程序时,这是否真的会发生?我应该考虑使用什么替代全局变量?

10
模板文件更改时重新加载Flask应用
默认情况下,使用内置服务器(Flask.run)运行Flask应用程序时,它将监视其Python文件并在代码更改时自动重新加载该应用程序: * Detected change in '/home/xion/hello-world/app.py', reloading * Restarting with reloader 不幸的是,这似乎仅适用于* .py文件,而且我似乎没有找到任何将此功能扩展到其他文件的方法。最值得注意的是,当模板更改时,让Flask重新启动应用程序将非常有用。我已经迷失了多少次我不喜欢模板中的标记,却因为看不到任何更改而感到困惑,只是发现该应用程序仍在使用旧版本的Jinja模板。 因此,有没有办法在模板目录中包含Flask监视文件,还是需要深入研究框架的源代码? 编辑:我正在使用Ubuntu 10.10。尚未在任何其他平台上尝试过。 经过进一步的查询,我发现模板中的更改确实是实时更新的,而无需重新加载应用程序本身。但是,这似乎仅适用于传递给的模板flask.render_template。 但是碰巧的是,在我的应用程序中,我有很多在Jinja模板中使用的可重用的,参数化的组件。它们实现为{% macro %}s,驻留在专用的“模块”中,并{% import %}编入实际页面。很好,很干...除了那些导入的模板显然从未检查过是否修改,因为它们根本没有通过render_template。 (奇怪的是,对于通过调用的模板,这种情况不会发生{% extends %}。至于{% include %},由于不真正使用它们,我不知道。) 因此,总结起来,这种现象的根源似乎在Jinja和Flask或Werkzeug之间。我想对于其中的任何一个项目,都可能需要进行bug跟踪:)同时,我已经接受了jd。的答案,因为这是我实际使用的解决方案-而且它的工作原理很像魅力。
95 python  flask  jinja2 

10
Flask中的静态文件-robot.txt,sitemap.xml(mod_wsgi)
是否有任何聪明的解决方案将静态文件存储在Flask的应用程序根目录中。robots.txt和sitemap.xml有望在/中找到,所以我的想法是为它们创建路由: @app.route('/sitemap.xml', methods=['GET']) def sitemap(): response = make_response(open('sitemap.xml').read()) response.headers["Content-type"] = "text/plain" return response 必须有一些更方便的方法:)

6
flask-sqlalchemy或sqlalchemy
我是flask和sqlalchemy的新手,我只是开始在flask应用程序上工作,现在我正在使用sqlalchemy。我想知道使用flask-sqlalchemy与sqlalchemy是否可以获得任何显着的好处。我在http://packages.python.org/Flask-SQLAlchemy/index.html中找不到足够的动机,或者也许我不明白它的价值!谢谢您的澄清。

5
将数据从文本框发送到Flask?
我想知道是否有办法从HTML的文本框中获取内容,将其输入flask,然后使用Python解析该数据。我以为这可能涉及一些JS,但我可能是错的。有任何想法吗?
92 python  flask 

2
使用url_for链接到Flask静态文件
如何url_for在Flask中使用引用文件夹中的文件?例如,我的static文件夹中有一些静态文件,其中一些可能位于子文件夹中static/bootstrap。 当我尝试从提供文件时static/bootstrap,出现错误。 <link rel=stylesheet type=text/css href="{{ url_for('static/bootstrap', filename='bootstrap.min.css') }}"> 我可以使用此文件来引用不在子文件夹中的文件。 <link rel=stylesheet type=text/css href="{{ url_for('static', filename='bootstrap.min.css') }}"> 引用静态文件的正确方法是什么url_for?如何使用url_for任何级别的静态文件生成URL?
91 python  flask  jinja2 

10
在Flask服务器中禁用控制台消息
我有一个在独立模式下运行的Flask服务器(使用app.run())。但是,我不需要控制台中的任何消息,例如 127.0.0.1 - - [15/Feb/2013 10:52:22] "GET /index.html HTTP/1.1" 200 - ... 如何禁用详细模式?
90 python  flask 

10
如何在烧瓶中启用CORS
我正在尝试使用jquery进行跨源请求,但它一直被消息拒绝 XMLHttpRequest无法加载http:// ...请求的资源上不存在“ Access-Control-Allow-Origin”标头。因此,不能访问Origin...。 我正在使用flask,heroku和jquery 客户端代码如下所示: $(document).ready(function() { $('#submit_contact').click(function(e){ e.preventDefault(); $.ajax({ type: 'POST', url: 'http://...', // data: [ // { name: "name", value: $('name').val()}, // { name: "email", value: $('email').val() }, // { name: "phone", value: $('phone').val()}, // { name: "description", value: $('desc').val()} // // ], data:"name=3&email=3&phone=3&description=3", crossDomain:true, success: function(msg) …
89 jquery  python  heroku  flask  cors 

3
如何从Flask @ app.route打印到python控制台
我想在用户/ button被调用后,简单地将“ hello world”打印到python控制台。 这是我的幼稚方法: @app.route('/button/') def button_clicked(): print 'Hello world!' return redirect('/') 背景:我想从flask(而不是shell)执行其他python命令。“打印”应该是最简单的情况。我相信我对这里的基本理解还不了解。提前致谢!
88 python  flask 

4
将Python Flask应用拆分为多个文件
我在理解如何将Flask应用程序拆分为多个文件时遇到麻烦。 我正在创建一个Web服务,并且想将api拆分为不同的文件(AccountAPI.py,UploadAPI.py等),只是我没有一个巨大的python文件。 我读过您可以使用“蓝图”来做到这一点,但我不确定这条路线是否适合我。 最终,我想运行一个Main python文件,并包含其他文件,以便在运行时将它们视为一个大文件。 例如,如果我有Main.py和AccountAPI.py,我希望能够做到这一点: Main.py: from flask import Flask import AccountAPI app = Flask(__name__) @app.route("/") def hello(): return "Hello World!" if __name__ == "__main__": app.run() AccountAPI.py: @app.route("/account") def accountList(): return "list of accounts" 我知道这个例子显然行不通,但是有可能这样做吗? 谢谢

1
在jinja2模板中转义jinja2语法
我从Flask的Jinja2模板提供动态页面。现在,我在脚本标签内定义客户端模板,例如Jinja2克隆Nunjucks。问题是,客户端模板具有类似语法<% %>该瓶的Jinja2的解释,而不是可以解释渲染的逐字。 如何使整个脚本块按原样呈现?
88 flask  jinja2 

9
本地Flask服务器上的请求缓慢
刚开始在本地服务器上试用Flask时,我注意到请求/响应时间比我预期的要慢得多。 像下面这样的简单服务器需要近5秒钟才能响应。 from flask import Flask app = Flask(__name__) @app.route("/") def index(): return "index" if __name__ == "__main__": app.run() 有任何想法吗?还是这只是本地服务器的方式?
87 python  flask 

11
AssertionError:视图函数映射正在覆盖现有的端点函数:main
有谁知道如果我有两个这样的URL规则,为什么我不能覆盖现有的终结点函数? app.add_url_rule('/', view_func=Main.as_view('main'), methods=["GET"]) app.add_url_rule('/<page>/', view_func=Main.as_view('main'), methods=["GET"]) 追溯: Traceback (most recent call last): File "demo.py", line 20, in <module> methods=["GET"]) File ".../python2.6/site-packages/flask‌​/app.py", line 62, in wrapper_func return f(self, *args, **kwargs) File ".../python2.6/site-packages/flask‌​/app.py", line 984, in add_url_rule 'existing endpoint function: %s' % endpoint) AssertionError: View function mapping is overwriting an existing …
86 python  flask 

1
declarative_base()和db.Model有什么区别?
Flask-SQLAlchemy插件的快速入门教程指导用户创建继承db.Model该类的表模型,例如 app = Flask(__main__) db = SQLAlchemy(app) class Users(db.Model): __tablename__ = 'users' ... 但是,SQLAlchemy教程和bottle-SQLAlchemy README都建议表模型继承从Base实例化declarative_base()。 Base = declarative_base() class Users(Base): __tablename__ = 'users' ... 这两种方法有什么区别?

2
有没有一种简单的方法可以使烧瓶超时?
我正在建立一个带有flask的网站,其中用户具有帐户并能够登录。我正在使用flask-principal作为登录部分和角色管理。有没有办法让用户的会话在5分钟或10分钟后过期?我在flask文档或flask-principal文档中找不到该文件。 我想到了一种手动方法,在登录时在服务器端设置一个带有时间标签的变量,并在用户执行下一个操作时,服务器会验证该时间戳记上的时间增量并删除会话。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.