templatesディレクトリと同じところにstaticディレクトリを作って、cssファイルを入れます。
例えばこんな感じです。
├── app.py
├── css
│ ├── font-awesome.min.css
│ └── styles.css
├── templates
│ └── form.html
└── test.html
headの中で指定します。
<head>
<link rel="stylesheet" href="{{ url_for('static', filename='style.css') }}">
</head>
http://flask.pocoo.org/docs/dev/tutorial/static/
■レスポンシブ
FLASKに限りませんが
viewport を使うといい感じにしてくれます。
<head>■render_templateで変数を全て渡す
<meta name="viewport" content="width=device-width, initial-scale=1.0">
</head>
# app.py
def test():
n1 = "test"
n2 = "this is a test"
return render_template("confirm.html", **locals())
上記の例では
return render_template("confirm.html", n1=n1, n2=n2)
と同じです。
■render_template
・変数を渡して、使わなくてもエラーにはならない
・渡されていない変数を{{ }} でhtml側で呼んでもエラーにはならず空白になるだけ
■formの値は文字列として渡される
<input type="checkbox" name="test" value=1>
というチェックボックスをPOSTで渡したとして、
request.form['test'] == 1
False
request.form['test'] == "1"
True
となります。valueをintで渡したつもりでも、strになるということですね。
<input type="checkbox" name="test" value="1">
最初から"1"とやっていたほうが誤解がなくて良いかもしれません。
■(htmlの話)
fontの指定はtd毎にやること
NG
<font size="+1">
<td>あああ</td>
<td>いいい</td>
</font>
OK
<td><font size="+1">あああ</font></td>
<td><font size="+1">いいい</font></td>
■flaskでprint文をコンソールに出力
printデバッグ用。
import sys
print('This is error output', file=sys.stderr)
print('This is standard output', file=sys.stdout)printデバッグ用。
import sys
print('This is error output', file=sys.stderr)
こうすると、errorの方がコンソールに出力されるはずです。設定によるかもしれませんが。
https://stackoverflow.com/questions/44405708/flask-doesnt-print-to-console/44410730
■Flaskのrender_template
基本かもしれません。
from flask import render_template
@app.route('/hello/')
@app.route('/hello/<name>')
def hello(name=None):
return render_template('hello.html', name=name)
render_templateで変数(ここではname)を送ることができます。テンプレートがhello.htmlで、urlにnameが加えられた状態になります。nameはデフォルトではNoneになっています。
@app.routeは1つのサイトに対して複数設定することができます。このURLが呼ばれたら下にあるdefを実行する、という意味になります。
0 件のコメント:
コメントを投稿