PythonからPostgresSQLを操作する
事前準備
shkh.hatenablog.com developers.mobage.jp
$ heroku login $ heroku create question32 $ emacs Procfile $ pip freeze > requirements.txt $ heroku addons:create heroku-postgresql:hobby-dev --app question32 $ heroku pg:info #[Add-on] $ heroku pg:promote [Add-on] $ mkdir template $ mkdir static #bootstrapなど配置 $ touch index.html $ git add . $ git commit -m "flask" $ git push heroku master $ heroku open
- Herokuを利用する場合、main.pyには、portの指定が必要。
- Errorやcssが読み込めているのか確認する。
フォームの情報をPythonで扱う
- flaskにはそんな機能はない tnakamura.hatenablog.com
フォームからの入力をpostgreSQLに保存する
$ sudo apt-get install postgresql $ sudo apt-get install libpq-dev
$ finger postgres $ sudo passwd postgres $ su postgres $ psql =# create role akira with login password '********'; =# createdb qdb; =# exit $ psql qdb -U akira $ create table qtable(q1 integer,q2 integer,q3 integer,q4 integer,q5 integer,q6 integer,q7 integer,q8 integer,q9 integer);
import psycopg2 connector = psycopg2.connect(host=u"localhost",database=u"qdb" ,user=u"****",password=u"******") cursor = connector.cursor() sql = "insert into qtable values("+str(form.q1.data)+","+str(form.q2.data)+","+str(form.q3.data)+","+str(form.q4.data)+","+str(form.q5.data)+","+str(form.q6.data)+","+str(form.q7.data)+","+str(form.q8.data)+","+str(form.q9.data)+","+str(face)+");" cursor.execute(sql) connector.commit() cursor.close() connector.close()
参考資料
- UnicodeDecodeError: 'ascii' codec can't decode byte 0xe5 in position xx: ordinal not in range(128) への対応策 pythonのデフォルトエンコーディングをutf-8に変更する - Qiita
- python2.xでの日本語(マルチバイト文字)問題を一掃する!(その1) — ExSoft
- PythonのUnicodeEncodeErrorを知る - HDEラボ
- UbuntuでPostgreSQLを使ってみよう (2) — Let's Postgres - postgresqlを入れて初めにすること