Практика
Flask
Преподаватель:
Фартышев Дмитрий Александрович
Способы описания URL-адреса @app.route(“/url/”) int - должны присутствовать только цифры; float - можно записывать число с плавающей точкой; path - можно использовать любые допустимые символы URL + символ слэша ‘/’
Задача 7 “Работа с переменными”
Не меняя программу, необходимо создать новый шаблон base.html, где будет основной шаблон. Расширить работу шаблона base.html шаблонами index.html и about.html.
Задача 7 “Работа с переменными”
from flask import Flask, render_template
app = Flask(__name__)
{% block title -%}
menu = ['Установка', 'Первое приложение', 'Обратная связь']
{% if title %}
Про Flask - {{ title }}
{% else %}
@app.route('/')
def index():
Про Flask
{% endif %}
return render_template('index.html', menu=menu)
{% endblock %}
@app.route('/about')
def about():
{% block content -%}
return render_template('about.html', title = 'О сайте', menu=menu)
{%- block mainmenu -%}
- {{m}}
@app.route('/profile/')
{% for m in menu %}
def profile(username):
return f'Пользователь: {username}'
{% endfor %}
if __name__=='__main__':
app.run(debug=True)
{% endblock mainmenu -%}
{% if title -%}
{{ title }}
{% else -%}
Про Flask
{% endif %}
{% endblock %}
{% extends 'base.html' %}
{% block content %}
{{ super() }}
Содержимое страницы "о сайте"
{% endblock %}
{% extends 'base.html' %}
{% block content %}
{{ super() }}
Содержимое главной страницы
{% endblock %}
Задача 9 “Добрый вечер”
Написать веб-приложение, которое в зависимости от времени установленного на персональном компьютере будет выводить одну из фраз на главной странице сайта, а также ниже дату и время на текущий момент:
- Доброе утро
- Добрый день
- Добрый вечер
- Доброй ночи
= 6 and now.hour greeting = 'Доброе утро' elif now.hour = 12 and now.hour {% block content %} {% endblock %} greeting = 'Добрый день' elif now.hour = 18 and now.hour greeting = 'Добрый вечер' else: greeting = 'Доброй ночи' return render_template('b.html', greeting=greeting, now=now) if __name__ == '__main__': app.run(debug=True) {% extends 'a.html' %} {% block content %} {{ greeting }}, user! Добро пожаловать на сайт. Дата и время на персональном компьютере: {{ now }} {% endblock %}" width="640"
Задача 9 “Добрый вечер”
from flask import Flask, render_template
import datetime
app = Flask(__name__)
{% block title %}{% endblock %}
@app.route('/')
def index():
now = datetime.datetime.now()
if now.hour = 6 and now.hour
greeting = 'Доброе утро'
elif now.hour = 12 and now.hour
{% block content %}
{% endblock %}
greeting = 'Добрый день'
elif now.hour = 18 and now.hour
greeting = 'Добрый вечер'
else:
greeting = 'Доброй ночи'
return render_template('b.html', greeting=greeting, now=now)
if __name__ == '__main__':
app.run(debug=True)
{% extends 'a.html' %}
{% block content %}
{{ greeting }}, user!
Добро пожаловать на сайт.
Дата и время на персональном компьютере: {{ now }}
{% endblock %}
Задача 13 “Шаблон интернет-магазина”
- Создать базовый шаблон для интернет-магазина, содержащий общие элементы дизайна(шапка, меню, подвал), и дочерние шаблоны для страниц категорий товаров и отдельных товаров.
- Например, создать страницы "Одежда", "Обувь" и “Аксессуары", используя базовый шаблон.
Задача 13 “Шаблон интернет-магазина”
from flask import Flask, render_template
app = Flask(__name__)
@app.route('/')
def my_shop():
return render_template('base_09.html')
{% block title %}
@app.route('/clothes/')
Мой магазин
def clothes():
{% endblock %}
clothes = {
'name': 'Наименование товара',
'size': 'Размерный ряд',
'amount': 'В наличии'
}
- Одежда
- Обувь
- Аксесуары
clothes_list = [
{
'name': 'Рубашка',
'size': 'XS, S, M, L, XL, XXL, XXXL',
'amount': 34
},
{% block content %}
{
Страница не заполнена
{% endblock %}
'name': 'Юбка',
'size': 'S, M, L, XXL',
'amount': 5
},
{
'name': 'Брюки',
'size': 'XS, S, L, XXXL',
'amount': 12
}
]
return render_template('index_09_clothes.html', **clothes, clothes_list=clothes_list)
@app.route('/shoes/')
def shoes():
shoes = {
'name': 'Наименование товара',
'size': 'Размерный ряд',
'amount': 'В наличии'
}
shoes_list = [
{
'name': 'Кроссовки детские',
'size': '20-36',
'amount': 15
},
{
'name': 'Ботинки',
'size': '36-44',
'amount': 5
}
]
return render_template('index_09_shoes.html', **shoes, shoes_list=shoes_list)
@app.route('/accessories/')
def accessories():
accessories = {
'name': 'Наименование товара',
'size': 'Размерный ряд',
'amount': 'В наличии'
}
accessories_list = [
{
'name': 'Шапка',
'size': '54-56',
'amount': 8
},
{
'name': 'Перчатки',
'size': '5-8',
'amount': 10
}
]
return render_template('index_09_accessories.html', **accessories,
accessories_list=accessories_list)
if __name__ == '__main__':
app.run(debug=True)
{% extends 'base_09.html' %}
{% block title %}
Одежда
{% endblock %}
{% block content %}
| {{ name }} | {{ size }} | {{ amount }} | {{ clothes.name }} | {{ clothes.size }} | {{ clothes.amount }} |
{% endblock %}
{% extends 'base_09.html' %}
{% block title %}
Обувь
{% endblock %}
{% block content %}
| {{ name }} | {{ size }} | {{ amount }} | {{ shoes.name }} | {{ shoes.size }} | {{ shoes.amount }} |
{% endblock %}
{% extends 'base_09.html' %}
{% block title %}
Аксессуары
{% endblock %}
{% block content %}
| {{ name }} | {{ size }} | {{ amount }} | {{ accessories.name }} | {{ accessories.size }} | {{ accessories.amount }} |
base_09
index_09_clothes
index_09_shoes
index_09_accessories


Практика. Основы баз данных 