Я новичок в Python, и мне нужно работать над созданием некоторых веб-сервисов.Я знаком с WS в Java, где я использую Tomcat для развертывания нескольких WS, и моя идея заключалась в том, чтобы применить аналогичные решения к Python.По сути, у меня есть разные проекты, представляющие разные сервисы, и я попытался развернуть их на сервере Waitress.Чтобы проверить это, я создал следующие структуры папок:
ws1 /
| ---- service1 /
| ------ | ------file1.py
ws2 /
| ---- service2 /
| ------ | ------ file2.py
server /
| ---- main.py
file1.py и file2.py содержат аналогичный код.Например, содержимое file1.py равно:
from flask import Flask, make_response
app = Flask(__name__)
@app.route("/ws1") # /ws2 in file2.py
def hello():
headers = {'Content-Type': 'text/plain'}
return make_response('Started WS1!', 200, headers)
@app.route("/ws1/bye") # /ws2/ in file2.py
def bye():
return "Bye World from WS1!"
, а содержимое main.py равно:
from waitress import serve
from .. ws1.service1 import file1 # I started trying only with ws1
serve(file1.app, host='127.0.0.1', port=5000)
Если я пытаюсь запустить main.py , я получаю сообщение:
из .. ws1.service1 import file1
ValueError: попытка относительного импорта за пределы top-пакет уровней
Что я делаю не так?
В любом случае, я заметил, что если я хочу запустить более одной WS, мне, вероятно, нужно продублировать строку:
serve(file1.app, host='127.0.0.1', port=5000)
Кажется, таким образом я запускаю несколько экземпляров сервера, используя разные порты, я полагаю.Итак, вопрос в том, нужно ли в Python использовать экземпляр сервера для каждой WS?Должны ли они использовать разные порты?Или, может быть, есть более эффективный вариант?
Как я уже говорил, я обычно развертываю разные WS в Tomcat, используя один и тот же сервер + порт.Вот почему я попытался сделать это таким образом.
Заранее спасибо за вашу помощь / идеи.