@beginer123

Питон приложение на Windows и Ubuntu как организовать?

Здравствуйте, пытаюсь понять как грамотно организовать работу над своим проектом.
Использую Flask фреймворк
локально работаю под windows, удаленно куплен VPS с ubuntu
Но сразу моноо вопросов возникает
Чтобы запустить Hello World сайт на винде достаточно создать один файлик и запустить его через консоль
python hello.py (можно даже апач не ставить)
Чтобы сделать то же самое на убунту,нашел целую статью(гораздо сложнее)
https://www.digitalocean.com/community/tutorials/h...
там нужно создать несколько файлов, вложенных папок и т.д структура будет выглядеть примерно так
|--------FlaskApp
|----------------FlaskApp
|-----------------------static
|-----------------------templates
|-----------------------venv
|-----------------------__init__.py
|----------------flaskapp.wsgi

Собственно вопрос: Как мне все это организовать на локальном и удаленном репозитории?
Еще у меня в скрипте будут такие конструкции(открытие различных файлов)
file = open('/var/www/FlaskApp/FlaskApp/myfile', 'w')

Но на винде у меня будет не такой путь, т.е мне при пуше на VPS репозиторий надо будет это менять постоянно?
Я правильно понимаю я должен по инструкции выше с начала сделать стартовый проект на сервере, а потом просто скопировать это все(включая папки venv) на локальный компьютер? чтобы потом при пуше структура была одинаковой?
Но и тут опять же возникает вопрос, что если у меня будут отличаться куски кода взависимости от того какой это сервер(локальный удаленный)?
  • Вопрос задан
  • 251 просмотр
Пригласить эксперта
Ответы на вопрос 2
@deliro
1) Абсолютные пути - зло. Нет ни одной причины тебе их использовать.
2) Есть модуль os, в котором есть функция os.path.join, которая собирает названия папок/файлов, добавляя нужные слеши.
Ответ написан
leahch
@leahch
3D специалист. Dолго, Dорого, Dерьмово.
По поводу файлов, сделайте файл settings.cfg, в него уберите хотя бы путь до вашего приложения.
import platform

if platform.system() == 'Linux':
   MYAPPPATH = "/var/www/FlaskApp/FlaskApp"
else: 
   MYAPPPATH = "C:/FlaskApp/FlaskApp"

Ну или прямо в коде запуска приложения
import platform
if platform.system() == 'Linux':
  app.config["MYAPPPATH"] = "/var/www/FlaskApp/FlaskApp"
else: 
   app.config["MYAPPPATH"] = "C:/FlaskApp/FlaskApp"


Далее в коде
file = open(app.config["MYAPPPATH"]+'/myfile', 'w')


По второму вопросу, во flask есть встроенные сервер, но он для отладки и разработки,. В боевом режиме настоятельно рекомендуется запускать из-под нормального сервера под WSGI. Здесь как раз и нужно будет написать дополнительно wsgi.py (в зависимости от типа запускалки) на десяток строк - в сети примеров вагон.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы