97 lines
5.7 KiB
Markdown
97 lines
5.7 KiB
Markdown
|
||
|
||
# Создайте виртуальную машину
|
||
https://yandex.cloud/ru/docs/tutorials/web/flask
|
||
## 1. Создайте виртуальную машину:
|
||
## 2. Создайте и активируйте виртуальное окружение.
|
||
### 2.1. Подключиться к серверу
|
||
### 2.2. Cоздайте поддиректорию проекта flask_blog
|
||
```
|
||
mkdir flask_blog && cd flask_blog
|
||
```
|
||
### 2.3 Установите модуль создания виртуальных сред venv:
|
||
```
|
||
sudo apt install python3-pip
|
||
sudo apt install python3.12-venv
|
||
```
|
||
### 2.4. Создайте виртуальное окружение env:
|
||
```
|
||
python3 -m venv env
|
||
```
|
||
### 2.5. Активируйте созданное виртуальное окружение:
|
||
```
|
||
source env/bin/activate
|
||
```
|
||
После активации виртуального окружения в командной строке появится префикс с именем окружения:
|
||
```
|
||
Примечание
|
||
|
||
Чтобы эффективно отслеживать процесс разработки проекта и управлять им, вы можете использовать систему контроля версий. В этом случае добавьте директорию env в файл .gitignore, чтобы не отслеживать файлы, не связанные с проектом.
|
||
```
|
||
Чтобы деактивировать виртуальное окружение, выполните команду:
|
||
```
|
||
deactivate
|
||
```
|
||
## 3.Установите Flask:
|
||
```
|
||
pip install flask
|
||
```
|
||
# Создайте и запустите приложение
|
||
|
||
Создайте простое веб-приложение внутри файла Python и запустите его для начала работы сервера.
|
||
|
||
1. В директории проекта flask_blog создайте и откройте файл app.py:
|
||
```
|
||
nano app.py
|
||
```
|
||
Этот файл позволяет понять, как приложение будет обрабатывать HTTP-запросы.
|
||
|
||
2. Добавьте в файл следующий код:
|
||
```
|
||
from flask import Flask
|
||
|
||
app = Flask(__name__)
|
||
|
||
|
||
@app.route('/')
|
||
def hello():
|
||
return 'Hello, World!'
|
||
```
|
||
В этом коде:
|
||
|
||
Импортируется объект Flask из пакета flask.
|
||
Создается экземпляр приложения Flask с именем app. Специальная переменная __name__ содержит имя текущего модуля Python и указывает экземпляру его расположение. Это необходимо, так как Flask устанавливает ряд путей внутри приложения.
|
||
С помощью декоратора @app.route('/') функция Python превращается в функцию визуализации Flask. Функция визуализации конвертирует возвращаемое значение в HTTP-ответ, который может быть обработан HTTP-клиентом, таким как веб-браузер. Значение '/' в маршруте @app.route() устанавливает, что эта функция будет отвечать на веб-запросы для URL /, который является основным URL-адресом веб-приложения.
|
||
Создается функция hello(), которая возвращает строку Hello, World! в качестве ответа.
|
||
|
||
Сохраните и закройте файл app.py.
|
||
3. Задайте переменные окружения Flask:
|
||
```
|
||
export FLASK_APP=app && export FLASK_DEBUG=true
|
||
```
|
||
Где:
|
||
|
||
FLASK_APP=app указывает на расположение приложения — файла app.py.
|
||
FLASK_DEBUG=true указывает, что приложение необходимо запустить в режиме разработки.
|
||
|
||
4. Запустите приложение:
|
||
```
|
||
flask run --host=0.0.0.0
|
||
|
||
```
|
||
Где параметр --host=0.0.0.0 запускает сервер приложения на всех IP-адресах виртуальной машины. Не указав этот параметр, вы не сможете обратиться к приложению по публичному IP-адресу ВМ.
|
||
|
||
Для нас важна следующая информация:
|
||
|
||
Название работающего приложения — app.
|
||
Debug mode: on означает, что отладчик Flask работает. Эта функция полезна при разработке, так как при возникновении проблем она выдает детализированные сообщения об ошибках, что упрощает работу по их устранению.
|
||
Приложение работает на всех адресах.
|
||
|
||
Вы можете изменить порт веб-сервера на любое другое значение, задав дополнительный параметр --port=<номер_порта>. Например, команда flask run --host=0.0.0.0 --port=5001 запустит веб-сервер Flask на порте 5001.
|
||
|
||
5. Откройте браузер и введите в адресной строке http://<публичный_IP-адрес_ВМ>:5000/.
|
||
|
||
Браузер отобразит строку Hello, World!. Это подтверждает, что ваше приложение успешно работает и к нему можно обращаться из интернета.
|
||
|
||
# Создайте и настройте шаблоны HTML
|