python3フラスコフレームワークの研究ノート(B)

概要:この章テンプレートの主な記録フラスコフレームワーク、静的ファイルや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により、

公開された40元の記事 ウォン称賛31 ビュー620 000 +

おすすめ

転載: blog.csdn.net/weixin_38422258/article/details/104502137