Tag: 烧瓶

如何访问蓝图中的app.config?

我试图访问一个蓝图authorisation.py里面的访问应用程序configuration,在一个包api中。 我正在初始化在authorisation.py使用的__init__.py中的蓝图。 __init__.py from flask import Blueprint api_blueprint = Blueprint("xxx.api", __name__, None) from api import authorisation authorisation.py from flask import request, jsonify, current_app from ..oauth_adapter import OauthAdapter from api import api_blueprint as api client_id = current_app.config.get('CLIENT_ID') client_secret = current_app.config.get('CLIENT_SECRET') scope = current_app.config.get('SCOPE') callback = current_app.config.get('CALLBACK') auth = OauthAdapter(client_id, client_secret, scope, callback) @api.route('/authorisation_url') def authorisation_url(): url […]

Angular JS POST请求不发送JSON数据

我试图发送一个对象作为JSON到我的Web服务在Flask,期待在请求数据中的JSON。 我已通过发送JSON数据手动testing服务,它工作正常。 但是,当我尝试通过angular度控制器发出http POST请求时,Web服务器向我发送一条消息,指出它没有收到JSON。 当我在Chrome中检查请求标题时,看起来数据不是以JSON发送的,而是通过内容types设置为application / json Request Method:POST Status Code:200 OK Request Headersview source Accept:application/json, text/plain, */* Accept-Encoding:gzip,deflate,sdch Accept-Language:en-US,en;q=0.8 Connection:keep-alive Content-Length:49 Content-Type:application/json;charset=UTF-8 DNT:1 Host:localhost:5000 Origin:http://localhost:5000 Referer:http://localhost:5000/ User-Agent:Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.116 Safari/537.36 X-Requested-With:XMLHttpRequest Request Payload application=AirFare&d1=10-APR-2013&d2=14-APR-2013 如果您看到请求有效负载下面的最后一行,则可以看到数据不是JSON格式。 这是我angular度控制器中的HTTP POST调用: $http({ url: '/user_to_itsr', method: "POST", data: {application:app, from:d1, to:d2}, headers: {'Content-Type': […]

揭秘烧瓶app.secret_key

如果未设置app.secret_key ,则Flask框架将不允许您设置或访问会话字典。 这是烧瓶用户指南在这个主题上所要说的。 我对networking开发很陌生,我不知道如何/为什么有什么安全措施。 我想了解一下烧瓶正在做什么。 为什么烧瓶迫使我们设置这个secret_key属性? 烧瓶如何使用secret_key属性?

Flask-SQLAlchemy如何删除单个表中的所有行

如何使用Flask-SQLAlchemy删除单个表中的所有行? 寻找这样的东西: >>> users = models.User.query.all() >>> models.db.session.delete(users) # but it errs out: UnmappedInstanceError: Class '__builtin__.list' is not mapped

如何在Flask中设置响应头?

这是我的代码: @app.route('/hello', methods=["POST"]) def hello(): resp = make_response() resp.headers['Access-Control-Allow-Origin'] = '*' return resp 但是,当我从浏览器请求我的服务器时,我得到这个错误: XMLHttpRequest cannot load http://localhost:5000/hello. No 'Access-Control-Allow-Origin' header is present on the requested resource. 我也尝试过这种方法,在请求之后设置响应头: @app.after_request def add_header(response): response.headers['Access-Control-Allow-Origin'] = '*' return response 没有骰子。 我犯了同样的错误。 有没有办法在路由function中设置响应头? 像这样的东西将是理想的: @app.route('/hello', methods=["POST"]) def hello(response): # is this a thing?? response.headers['Access-Control-Allow-Origin'] = '*' return response 但我无法find这样做。 […]

Flask – 访问模板中的configurationvariables

我正在使用Flask版本0.7。 我已将静态内容的path存储在configuration文件中,并使用它加载 app.config.from_envvar(<file_name>) 我能否在模板中访问这个configurationvariables而不通过视图传递variables?

连接到Flask的数据库,哪种方法更好?

方法一:使用http://flask.pocoo.org/docs/tutorial/dbcon/和http://flask.pocoo.org/docs/patterns/sqlite3/中的特殊g对象 import sqlite3 from flask import g DATABASE = '/path/to/database.db' def connect_db(): return sqlite3.connect(DATABASE) @app.before_request def before_request(): g.db = connect_db() @app.teardown_request def teardown_request(exception): if hasattr(g, 'db'): g.db.close() 方法二:从https://github.com/mitsuhiko/flask/blob/master/examples/flaskr/flaskr.py使用神秘的_app_ctx_stack from sqlite3 import dbapi2 as sqlite3 from flask import Flask, request, session, g, redirect, url_for, abort, \ render_template, flash, _app_ctx_stack def get_db(): """Opens a new database connection […]

我怎样才能使用从ajax发布的数据?

我无法从jquery ajax获取数据发布。 $('#clickme').click( function() { var data = save_input(); // data data['_sid'] = $survey_id; // survey_id injected from flask data['_uip'] = $user_ip; // user_ip injected from flask, request.remote_addr $.ajax({ type : "POST", url : "{{ url_for('mod.load_ajax') }}", data: JSON.stringify(data), contentType: 'application/json;charset=UTF-8', success: function(result) { console.log(result); } }); console.log(data); }); 从代码来看, data是一个javascript对象 { 'foo' : 'foo', […]

如何将Flask出色的debugging日志消息写入生产中的文件?

我有一个Flask应用程序运行良好,并产生偶尔的错误。 当我的应用程序在debugging模式下使用: if __name__ == '__main__': app.run(debug=True) 我收到了有用的错误消息,如: Traceback (most recent call last): File "./main.py", line 871, in index_route KeyError: 'stateIIIII' 当我在生产环境中运行应用程序(使用Lighttpd + fastcgi)时,我希望将这些错误消息保存到文件中。 查看了各种StackOverflow问题后, http: //flask.pocoo.org/docs/errorhandling/,http://docs.python.org/2/library/logging.html,Flask邮件列表和一些博客,似乎没有“简单”的方法来发送所有伟大的错误消息到一个文件 – 我需要使用Python日志logging模块来定制的东西。 所以我想出了下面的代码。 在我的应用程序文件的顶部,我有各种import,其次是: app = Flask(__name__) if app.debug is not True: import logging from logging.handlers import RotatingFileHandler file_handler = RotatingFileHandler('python.log', maxBytes=1024 * 1024 * 100, backupCount=20) file_handler.setLevel(logging.ERROR) […]

在模板文件更改时重新装载Flask应用程序

默认情况下,当使用内置服务器( Flask.run )运行Flask应用程序时,它会监视其Python文件,并在代码更改时自动重新载入应用程序: * Detected change in '/home/xion/hello-world/app.py', reloading * Restarting with reloader 不幸的是,这似乎只适用于* .py文件,而且我似乎没有find任何方法将此function扩展到其他文件。 最值得注意的是,当模板更改时,Flask重启应用将非常有用。 我已经失去了多less次在模板中弄乱了标记,并且因为没有看到任何改变而感到困惑,只是发现应用程序仍然使用旧版本的Jinja模板。 那么,有没有一种方法可以在模板目录中使用Flask监视器文件,还是需要跳入框架的源代码? 编辑 :我使用Ubuntu 10.10。 还没有尝试过,在任何其他平台真的。 经过进一步的调查,我发现模板的变化实际上是实时更新的,无需重新加载应用程序本身。 但是,这似乎只适用于传递给flask.render_template模板。 但是恰巧在我的应用程序中,我有很多可重用的参数化组件,我在Jinja模板中使用。 它们被实现为{% macro %} ,驻留在专用的“模块”中,并被{% import %}到实际的页面中。 所有漂亮和干燥…除了那些导入的模板显然从来没有检查修改,因为他们根本不通过render_template 。 (奇怪的是,对于通过{% extends %}调用的模板,这不会发生。对于{% include %} ,我不知道,因为我没有真正使用它们。 所以这个现象的根源似乎在于Jinja和Flask或者Werkzeug之间。 我想这可能需要为这些项目之一的bug追踪器:)同时,我接受了jd。 因为这是我实际使用的解决scheme – 它的作用就像一个魅力。