>http://localhost:9999/echo/Gamera
Вы должны увидеть следующее:
>Say hello to my little friend: Gamera
Модифицируем наш пример и сохраним его в папке templates под именем flask3.html:
>
>
>Flask3 Example
>
>
>Say hello to my little friend: {{ thing }}.
>Alas, it just destroyed {{ place }}!
>
>
Второй аргумент в URL, echo, вы можете передать множеством способов.
Передача аргумента как части пути URL
С помощью этого метода вы просто расширяете URL (сохраните этот файл как flask3a.py):
>from flask import Flask, render_template
>app = Flask(__name__)
>@app.route('/echo//')
>def echo(thing, place):
>····return render_template('flask3.html', thing=thing, place=place)
>app.run(port=9999, debug=True)
Как обычно, остановите предыдущий сценарий тестового сервера, если он еще работает, и затем запустите новый:
>$ python flask3a.py
URL должен выглядеть так:
>http://localhost:9999/echo/Rodan/McKeesport
Вы должны увидеть следующее:
>Say hello to my little friend: Rodan. Alas, it just destroyed McKeesport!
Или же вы можете передать аргументы как параметры команды GET (сохраните файл как flask3b.py):
>from flask import Flask, render_template, request
>app = Flask(__name__)
>@app.route('/echo/')
>def echo():
>····thing = request.args.get('thing')
>····place = request.args.get('place')
>····return render_template('flask3.html', thing=thing, place=place)
>app.run(port=9999, debug=True)
Запустите новый сценарий сервера:
>$ python flask3b.py
В этот раз используйте следующий URL:
>http://localhost:9999/echo?thing=Gorgo&place=Wilmerding
Вы должны увидеть следующее:
>Say hello to my little friend: Gorgo. Alas, it just destroyed Wilmerding!
Когда команда GET используется в URL, любые аргументы должны передаваться в формате &key1=val1&key2=val2&…
Вы также можете использовать оператор словаря **, чтобы передать несколько аргументов в шаблон с помощью одного словаря (назовите файл flask3c.py):
>from flask import Flask, render_template, request
>app = Flask(__name__)
>@app.route('/echo/')
>def echo():
>····kwargs = {}
>····kwargs['thing'] = request.args.get('thing')
>····kwargs['place'] = request.args.get('place')
>····return render_template('flask3.html', **kwargs)
>app.run(port=9999, debug=True)
**kwargs действует как конструкция thing=thing, place=place. Используя этот словарь, можно сэкономить немного времени, если входных аргументов много.
Язык шаблонов jinja2 способен на гораздо большее. Если вы работали на PHP, то увидите много похожих возможностей.