概要:この章テンプレートの主な記録フラスコフレームワーク、静的ファイルやCookieの操作
テンプレート
の主要な役割フラスコビュー機能は、時に応答ページスプライシングエスケープ文字列により、ページコンテンツ場合は、HTTPリクエストに応じてコンテンツであり、不必要な不明なエラーが発生することがあり、テンプレートエンジンを使用することができます。
フラスコ利用jinga2テンプレートエンジン、フォルダテンプレート、およびリターンでHTMLファイルを探してみてください。主に以下の機能を通じて達成:
flask.render_template(template_name_or_list、コンテキスト)
パラメータ:
- template_name_or_list:テンプレート名
- コンテキスト - テンプレートにパラメータを渡す必要
簡単な例:
from flask import Flask
from flask import render_template
app = Flask(__name__)
@app.route('/study/<username>', methods=['GET'])
def sayhello(username):
return render_template('Hello.html', username=username)
if __name__ == '__main__':
app.run()
応答ページ:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Hello</title>
</head>
<body>
{% if username =='admin' %}
<p>Hello, {{ username }}</p>
{% else %}
<p>{{ username }}, Permission denied </p>
{% endif %}
</body>
</html>
アクセスするには、ブラウザます:http://127.0.0.1:5000 /研究 / wangwuの
出力:
wangwu, Permission denied
アクセスするには、ブラウザます:http://127.0.0.1:5000 /研究 / adminに
出力:
Hello, admin
HTMLから脱出し、次の区切り文字を使用してJinja2のテンプレートエンジン
- {%...%}:for文
- {{...}}:式はテンプレートに出力を印刷することができるため
- } {#...#:出力用のテンプレートにコメントが含まれていません
- ...###:ライン声明
第二に、静的ファイルの
Webアプリケーションでは、多くの場合、JSファイルやCSSファイルなど、静的なファイルが必要です。これらのファイルは、通常の静的フォルダから提供されています。
上記実施のわずかな修正:( HTMLファイル)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Hello</title>
<link rel="stylesheet" type="text/css" href="{{ url_for('static', filename = 'hello.css') }}">
</head>
<body>
{% if username =='admin' %}
<p>Hello, {{ username }}</p>
{% else %}
<p>{{ username }}, Permission denied </p>
{% endif %}
</body>
</html>
静的ディレクトリのプロジェクトに新しいファイルhello.css
p{
font-size: 60px;
color: blue;
}
アクセス接続を見つけることができたときのスタイルは、導入に類似のjsファイルを変更されています。
三、クッキー操作は
、セッションは、ユーザ端末上でローカルに(通常は暗号化された)データを追跡し、保存するために、一時的または恒久的に保存されているクライアントコンピュータの情報を利用者に特定のサイトのユーザーIDを特定することです
主Requestオブジェクトクッキー、以下の実施例によりフラスコの操作:
from flask import Flask
from flask import render_template
from flask import make_response
from flask import request
app = Flask(__name__)
@app.route('/study/<username>', methods=['GET'])
def sayhello(username):
# 通过make_response函数获得flask.wrappers.Response对象
resp = make_response(render_template('Hello.html', username=username))
# 通过Response对象设置cookie
resp.set_cookie('username', username)
return resp
@app.route('/study/cookie')
def getcookie():
# 通过request.cookies函数获取cookies字典,然后获取指定的数据即可
return request.cookies.get('username')
if __name__ == '__main__':
app.run()
テスト:
ブラウザアクセス:http://127.0.0.1:5000/study/adminとhttp://127.0.0.1:5000/study/cookieの
リターン:管理者
リクエストヘッダにクッキーを参照するにはF12により、