タグ付けされた質問 「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.param1ずつ増加します。 returnステートメントを実行する前に、スレッドself.paramはクライアント2に切り替わります。再びインクリメントされます。 スレッドはクライアント1に戻り、クライアントには、たとえば、番号2が返されます。 これでスレッドはクライアント2に移動し、クライアントに番号3を返します。 クライアントが2つしかないため、期待される結果は2と3ではなく1と2でした。数値はスキップされました。 これは、アプリケーションをスケールアップするときに実際に起こりますか?グローバル変数に代わるものは何ですか?

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 %}、専用の「モジュール」に常駐し、{% import %}実際のページに組み込まれます。インポートされたテンプレートはまったく通過しないため、変更されたテンプレートが明らかにチェックされないことを除いて、すべてが素晴らしく、DRYですrender_template。 (不思議なことに、これはを介して呼び出されたテンプレートでは発生しません{% extends %}。については{% include %}、実際には使用しないのでわかりません。) まとめると、この現象のルーツは、ジンジャとフラスコまたはウェルクツグの間のどこかにあるようです。これらのプロジェクトのいずれかでバグトラッカーにアクセスする必要があると思います:)その間、私は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
フラスコ-sqlalchemyまたはsqlalchemy
私はフラスコとsqlalchemyの両方を初めて使用し、フラスコアプリで作業を開始するだけで、今のところsqlalchemyを使用しています。Flask-sqlalchemyとsqlalchemyを使用することから得られる大きなメリットがあるかどうか疑問に思っていました。http://packages.python.org/Flask-SQLAlchemy/index.htmlで十分な動機を見つけることができなかったか、値を理解できなかったのかもしれません。あなたの説明をお願いします。

5
テキストボックスからFlaskにデータを送信しますか?
HTMLのテキストボックスから何かを取り出してフラスコにフィードし、そのデータをPythonで解析する方法があるかどうか疑問に思いました。これにはJSが関係しているのではないかと思っていましたが、間違っている可能性があります。何か案は?
92 python  flask 

10
フラスコでCORSを有効にする方法
jqueryを使用してクロスオリジンリクエストを作成しようとしていますが、メッセージで拒否され続けます XMLHttpRequestはhttp://をロードできません...要求されたリソースに「Access-Control-Allow-Origin」ヘッダーがありません。したがって、Origin ...はアクセスを許可されていません。 フラスコ、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) { …
92 jquery  python  heroku  flask  cors 

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 

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を生成するためにどのように使用しますか?
89 python  flask  jinja2 

3
Flask @ app.routeからPythonコンソールに印刷する方法
ユーザーが/ buttonを呼び出した後、Pythonコンソールに「helloworld」を出力したいと思います。 これは私の素朴なアプローチです: @app.route('/button/') def button_clicked(): print 'Hello world!' return redirect('/') 背景:(シェルではなく)フラスコから他のPythonコマンドを実行したいと思います。「印刷」が最も簡単なケースです。私はここで基本的なひねりを理解していないと思います。前もって感謝します!
88 python  flask 

4
PythonFlaskアプリを複数のファイルに分割
フラスコアプリを複数のファイルに分割する方法を理解するのに問題があります。 Webサービスを作成していて、APIをさまざまなファイル(AccountAPI.py、UploadAPI.pyなど)に分割したいので、巨大なPythonファイルが1つもありません。 ブループリントでこれを実行できることを読みましたが、ルートが私にとって正しいルートであるかどうかは完全にはわかりません。 最終的には、1つのメインPythonファイルを実行し、他のファイルを含めて、実行時に1つの大きなファイルと見なされるようにします。 たとえば、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" この例では明らかに機能しないことはわかっていますが、そのようなことは可能ですか? ありがとう

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
このような2つの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 

9
Flaskを使用したクロスオリジンリソースシェアリングの解決
次のajax投稿リクエストの場合Flask(フラスコ内のajaxから投稿されたデータをどのように使用できますか?): $.ajax({ url: "http://127.0.0.1:5000/foo", type: "POST", contentType: "application/json", data: JSON.stringify({'inputVar': 1}), success: function( data ) { alert( "success" + data ); } }); 私が取得Cross Origin Resource Sharing (CORS)エラー: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'null' is therefore not allowed access. The response had HTTP status code …

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つのアプローチの違いは何ですか?

2
フラスコ内でセッションをタイムアウトにする簡単な方法はありますか?
ユーザーがアカウントを持っていてログインできるフラスコを使ってウェブサイトを構築しています。ロギングの一部とロール管理にflask-principalを使用しています。たとえば5分または10分後にユーザーのセッションを期限切れにする方法はありますか?フラスコのドキュメントやフラスコの校長のドキュメントではそれを見つけることができませんでした。 手作業でそれを行う方法を考えました。ログイン時にタイムタグをサーバー側に設定し、ユーザーが次に実行するアクションで、サーバーはそのタイムスタンプのタイムデルタを確認し、セッションを削除します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.