flask

<Python, flask> test_client()

Flaskさんをやっていて、app.app_context()をやるがいいが、 実際の動作requestに対する応答を確認するいい方法がないかと思っていたら、ありました。 さすがっす。 app.test_client()らしいっす。 このまえ、かりかり作ったスクリプト(下)でちと実験。 gi…

<Python, flask> Flaskr

どうも、FlaskのドキュメントdocumentのページのFlaskrとGithubの中身が異なるっぽい。 Github版は、Blueprint等々使ってて、初心者向けじゃなくなってる。。。 ち。。。 昔、mitsuhikoさんが作ったものは下記にあるっぽい。 https://github.com/pallets/fla…

<Python, flask> CORS対応。

クロスドメイン通信制約。 セキュリティの問題上、そのHTMLファイルが置かれているドメインのサーバとしか通信できないという制約。 qiita.com で、jQuery ajaxでjsonさんデータをGETするスクリプトを作ったが動かなかった。 ので、Flask-CORSを追加した。 s…

<Python, flask> REST APIをやってみた。。。

前から気になっていた、REST APIとFlask-SQLAlchemy。 サンプルコードを作ってみた。 http://127.0.0.1/sqlalc/id/name/looksの情報を、Jsonの{"id": id, "name": name, "looks":looks}にして、通信+SQLデータベースに取り込む。 GET + /id/name/*/ でSQLか…

<Python, flask> endpointとは、、、

Flaskさんで使われている語句 endpointって何? と思った。 調べてみた。 stackoverflow.com いつも頼りになるstackoverflowさん。 最初の回答はよくわからなかったが、2回目の回答を試す。 In [1]: from flask import Flask, url_for ...: ...: app = Flas…

<Flask, Python> リクエストコンテキストで遊ぶ。

リクエストコンテキストrequest contextで遊ぶ。 つまり、リクエストを受けた状態、で遊ぶ。 その1 withでrequest context状態にする。 In [1]: from flask import request, Flask In [2]: app = Flask('aaa') In [3]: with app.test_request_context('/hel…

<Google Cloud Platform, Flask> Flaskを動かしてみる。

Flaskさんを動かしてみる。 こちらを参考。 qiita.com Gitして、dev_appserver.pyしてみた。 py27 % git clone https://github.com/GoogleCloudPlatform/appengine-flask-skeleton.git Cloning into 'appengine-flask-skeleton'... remote: Counting objects…

<Python> 文字コードのめも

python3の場合、文字列は、うにこーどunicodeのコードポイントを並べたもの とのこと。 ようは、UTF-8のことらしい。 python2とは違うので注意!。 python2の例を参考するとはまる。 ファイルとかに書きだすということは、文字列をエンコードすることになる…

<Python, flask> checkboxが1つの場合

htmlのformでcheckboxが1つの場合のrequest.args.getの返し。 チェックされてると、onが返る。。。 (いや、はまったなー。。。) 例: <form action="" method="GET"> <input type="checkbox" name="hage">&nbsp;Hage ? </form> で、 @app.route('/', method=['GET']) def index(): hage = request.args.get('hage', default='', ty…

<Python, flask> クッキー

flaskさんで、クッキーcookieしてみた。 まずはコードを書き書き。 from flask import Flask, make_response, request app = Flask(__name__) @app.route('/set') def set(): response = make_response('hage-') response.set_cookie('cookie_name', 'hige--…

<Flask, socket> ホストネーム表示

ホストネーム hostnameの表示。 In [9]: from flask import Flask In [10]: import socket In [11]: app = Flask(__name__) In [12]: @app.route('/') ...: def aaa(): ...: return socket.gethostname() ...: In [13]: app.run()

<Flask> Uploading

Flaskさんでファイルをアップロード upload。 ベースのコードは、ドキュメントにあった。 下記でうまくいった。 import os from flask import Flask, request, redirect, url_for, send_from_directory from werkzeug import secure_filename UPLOAD_FOLDER …

<Flask> url_for

url_forを少し試す。 In [70]: from flask import Flask, url_for In [71]: app = Flask(__name__) url確認。 In [72]: app.url_map Out[72]: Map([<Rule '/static/<filename>' (GET, HEAD, OPTIONS) -> static>]) ルーティング。 In [74]: @app.route('/hage1/') ...: def hage1(): .</rule>…

<Flask> outside of application context

Flaskさんのオブジェクトで少し遊ぶ時、時々遭遇する、outside of application context。 withでapp.app_context()を呼べばいいことがわかった。 The Application Context — Flask Documentation (0.10) 例。 まずは、Flaskのインスタンスapp作る。 In [60]:…

<Flask> Flask-FlatPages

Flask-FlatPagesを使ったマークダウン markdownで書いたテキストの表示。 https://pythonhosted.org/Flask-FlatPages/ この人のブログポストを実際にやってみた。 www.jamesharding.ca まずは階層構造。 % tree . . ├── blog.py ├── content │ └── posts │ ├…

<Flask> Flask-Login 0.3.0での変更

Flask-Loginの0.3.0でis_authenticated()とかが、メソッド methodからプロパティー propertyに変ったらしい。 毎々お世話になってるスタックさんに教えてもらった。 stackoverflow.com 確かにソースにそう書いてある。 github.com なるほど、みげるっちのfla…

<Python, flask> 13b

みげるっちのFlask Web Development を勉強中。 github.com 手っ取り早く、だいたいブログが出来上がった、 13bからスタートするために、いくつかメモ。 その1 git チェックアウトする。 >git clone https://github.com/migelgrinberg/flasky >cd flasky >g…

<Python, flask> Flask-mail

Flask-mailしてみた。 https://pythonhosted.org/flask-mail/ まずは、SMTPサーバオン。 >winpty python -m smtpd -n -c DebuggingServer localhost:1025 続いて、別ターミナルで、ipyhtonオン。 で、 In [1]: from flask import Flask In [2]: from flask.e…

<Python, flask> WTForms をもうちょい研究。

WTFromsをもうちょい研究。 ちと試しにWTFormsでオブジェクト作ってメンバーでも見てみようかと思った。 In [81]: from wtforms import TextAreaField, SubmitField In [82]: class PostForm(Form): ...: body = TextAreaField('Hi') ...: submit = SubmitFi…

<Python, flask> WTforms の In-line Validators

WTformsのIn-line Validatorsがちとわかったのでメモっち。 validatorさんは、 WTformsでフォームFromのクラスを作って、 フォームの各要素 Field に期待された値が入って返ってくるか?を チェック validateする役目。 あらかじめ準備してあるものは、Field…

<Flask> Flask-Login と Blinker

Flask-Loginをちら見。 Flask-Login — Flask-Login 0.3.2 documentation これは、たぶん、 ユーザ userのログイン、ログアウトを管理するセッション session を、 ちこっと便利に使うためのモジュールっぽい。 login_user()のコードを見ると、 def login_use…

<Flask> WTFroms のめも

みげるっちの本勉強中。 ちとわかって来たのでメモ。 github.com WTFormsとは、htmlのformを作ってくれるものらしい。 www.htmq.com WTForms Documentation — WTForms 3.0dev documentation Flask-WTF — Flask-WTF 0.9.5 documentation formをhtmlに書き書き…

<Flask, pandas> Flask-SQLAlchemy + pandas

ちとFlask-SQLAlchemyを試してみた。 データベースを直接呼び出すのでなく、それを包むオブジェクト wrapper object経由で操作するものらしい。 まずはインポート import。 接続するデータベースは、app.config['SQLALCHEMY_DATABASE_URI']で指定しないとい…

<Flask> Flask-Script

Flaskでセットアップ、デバック等々が楽になるように、 Flask-Scriptという拡張モジュール extentioin があるのを知った。 試してみる。 もとのapp.pyスクリプトをコピーして、 script.pyという名前にして#追加の行を追加。 from flask import Flask from fl…

<Python, flask> デコっちの応用、、、

みげるっちの講義のFlask-Loginの使われ方をみて、いまいちよくわからんとこがあった。 blog.miguelgrinberg.com @lm.user_loader def load_user(id): return User.query.get(int(id)) load_user()を他で呼んでいるところもない。 ちとflask_loginのソースを…

<Flask, Web> Session

セッション sessionってなんじゃろー、と思った。 itpro.nikkeibp.co.jp なるほど、 1人のユーザがWebにアクセスする時の一連の処理の始めから終わりまでの期間。 ふーん、、、 個々のWebアクセスリクエストは、それぞれ単発であり、それを繋ぐ紐は、Webサ…

<Python, flask> app.config

app.config 正しくは、flask.config.Configについてメモ。 こいつは、Flaskが呼ばれた時に使う変数 variable 群と、ちょっぴりユーティリティーらしい。 In [23]: import flask In [26]: app = flask.Flask(__name__) In [27]: type(app.config) Out[27]: fl…

<flask> ポートがぶつかった時

Flaskでポートportが空いとらへんで、堪忍してや、、と言われた時。 python app.py Traceback (most recent call last): File "app.py", line 32, in <module> app.run(debug=True) File "/home/hage/lib/python3.4/site-packages/flask/app.py", line 772, in run r</module>…

<Flask> GETで2つ以上の値を受け取る方法。

Flaskさんで、htmlのフォームformのGETメソッドmethodで、2つ以上の値を受け取る方法。 request.args.getlist() これで、リストlistで値が返ってくる。ナイス。 例。 from flask import Flask, render_template, request import subprocess app = Flask(__n…

<Flask, Python> 神社で文字列化されないためには、、

Flaskから、値を、render_template()で値渡す場合、、、 そのまま渡すと、値は文字列として自動で解釈される。 例えば、app.py側が、 hage='<div>truppage</div>' return render_template("hoge,html', hage=hage) で、神社jinjaのtemplate側が、 {{ hage }} だと、結果…