#python #flask #networking #network-programming #web-hosting
#python #flask #сеть #сетевое программирование #веб-хостинг
Вопрос:
Я создал веб-приложение с использованием flask, и на данный момент я не смогу разместить его на облачном сервере. Я хочу разместить его в своей ОС Windows 10, и меня не беспокоит наличие у приложения безопасных сертификатов, поскольку оно предназначено для отображения в качестве прототипа. Для демонстрации результата приложения достаточно трех файлов:
myapp.py
:
# This a Natural Language Processing app using a machine learning model
class Lingus:
def __init__(self, data):
self.text = data
def output(self):
return self.text " - " self.text "n" self.text
Далее находится html-файл в папке templates templates/my-form.html
:
<form method="POST">
<input name="text">
<input type="submit">
</form>
Наконец, скрипт на python, использующий flask для приложения под названием main.py
:
from flask import Flask, request, render_template
from myapp import Lingus
app = Flask(__name__)
@app.route('/')
def my_form():
return render_template('my-form.html')
@app.route('/', methods=['POST'])
def my_form_post():
text = request.form['text']
processed_text = text.upper()
result = Ling(text)
return result.output()
if __name__ == "__main__":
app.run(debug=True)
Опять же, цель состоит в том, чтобы сделать это приложение доступным через любой веб-браузер (не локально), используя Windows 10. У меня нет опыта в серверной разработке или сетевой инженерии, но я думаю, что это технически возможно.
PS: мне не нужно, чтобы приложение имело сертификаты безопасности для клиентов.
Комментарии:
1. Похоже, вам может потребоваться изучить переадресацию портов
2. почему бы вам не разместить его в pythonanywhere.com бесплатно? в противном случае, чтобы сделать ваши веб-страницы доступными 24/7, ваш компьютер не должен выключаться, что приведет к его повреждению, если вам все еще нужно продолжать, нужно выполнить множество настроек, сначала нужно установить веб-сервер, такой как apache, затем вам нужно указать статический IP-адрес, google для получения полного руководства
3. Взгляните на
ngrok
. Это позволяет избежать необходимости переадресации портов и предоставляет общедоступный URL-адрес, который сопоставляется с локальным портом при запуске их клиента вместе с приложением на вашем ПК. Демонстрация прототипов входит в их предлагаемые варианты использования. При правильной настройке это обеспечит безопасный общедоступный URL-адрес, позволяющий запускать приложение локально без SSL (аналогично производственной настройке, с обратным прокси, завершающим SSL).4. @ v25 Спасибо, приятель! Ваше решение было идеальным.
Ответ №1:
Решение v25 в комментарии к вопросу сработало отлично. Это позволило избежать переадресации портов и состояло из загрузки ngrok и написания одной строки кода для локального размещения приложения. Вам нужно только загрузить ngrok на бесплатную учетную запись и написать ngrok http < PORT ON WHICH YOUR APP IS RUNNING >
. Я запускал свое приложение flask на порту 5000, поэтому в моем случае я запустил приложение локально, открыл ngrok.exe и написал:
ngrok http 5000
И это все. Теперь я могу показать прототип своего приложения любому и предоставить его пользователям для тестирования. Однако адрес приложения меняется каждые 8 часов, вам следует обновить свою учетную запись, чтобы получить статический адрес для вашего приложения.
Комментарии:
1. Хороший последующий ответ 🙂 Я полагаю, что бесплатный уровень также изменяет общедоступный URL-адрес каждый раз
ngrok
, когда процесс перезапускается, к вашему сведению.2. @v25 Спасибо, оно меняется каждые 8 часов, но в целом это было именно то, что искал. Цена получения статического общедоступного URL-адреса на данный момент составляет 5 долларов в месяц, поэтому заплатить за такую низкую цену не проблема.