Простой Python. Современный стиль программирования (Любанович) - страница 284

Перед вами файл flask3.py:

>from flask import Flask, request, render_template

>app = Flask(__name__)

>@app.route('/')

>def home():

>····thing = request.values.get('thing')

>····height = request.values.get('height')

>····color = request.values.get('color')

>····return render_template('home.html',

>········thing=thing, height=height, color=color)

>app.run(debug=True)

Перейдите в своем клиенте по следующему адресу:

>http://localhost:5000/?thing=Octothorpe&height=7&color=green

Вы должны увидеть следующее:

>I'm of course referring to Octothorpe, which is 7 feet tall and green.

Глава 10. Системы

1. Запишите текущие дату и время как строку в текстовый файл today.txt:

>>>> from datetime import date

>>>> now = date.today()

>>>> now_str = now.isoformat()

>>>> with open('today', 'wt') as output:

>…·····print(now_str, file=output)

>>>>

Вместо функции print вы могли бы использовать строку вроде output.write(now_str). Использование функции print добавляет символ перевода строки в конце.

2. Прочтите текстовый файл today.txt и разместите данные в строке today_string:

>>>> with open('today', 'rt') as input:

>…·····today_string = input.read()

>…

>>>> today_string

>'2014-02-04\n'

3. Разберите дату из строки today_string:

>>>> fmt = '%Y-%m-%d\n'

>>>> datetime.strptime(today_string, fmt)

>datetime.datetime(2014, 2, 4, 0, 0)

Если вы записали тот символ новой строки в файл, вам нужно, чтобы он совпал со строкой формата.

4. Выведите на экран список файлов текущей папки.

Если ваша текущая папка называется ohmy и содержит три файла с именами по названиям животных, код может выглядеть так:

>>>> import os

>>>> os.listdir('.')

>['bears', 'lions', 'tigers']

5. Выведите на экран список файлов родительской папки.

Если родительская папка содержит два файла и текущую папку ohmy, код может выглядеть так:

>>>> import os

>>>> os.listdir('..')

>['ohmy', 'paws', 'whiskers']

6. Используйте модуль multiprocessing, чтобы создать три отдельных процесса. Заставьте каждый из них ждать случайное количество секунд (от одной до пяти), вывести текущее время и завершить работу.

Сохраните этот файл под именем multi_times.py:

>import multiprocessing

>def now(seconds):

>····from datetime import datetime

>····from time import sleep

>····sleep(seconds)

>····print('wait', seconds, 'seconds, time is', datetime.utcnow())

>if __name__ == '__main__':

>····import random

>····for n in range(3):

>········seconds = random.random()

>········proc = multiprocessing.Process(target=now, args=(seconds,))

>········proc.start()

>$ python multi_times.py

>wait 0.4670532005508353 seconds, time is 2014-06-03 05:14:22.930541

>wait 0.5908421960431798 seconds, time is 2014-06-03 05:14:23.054925