Маршрутизация приложения Flask не работает с mod_wsgi и виртуальным хостом - PullRequest
0 голосов
/ 03 января 2019

Я новичок в программировании, но мне удалось вызвать два нижеприведенных колб-приложения для работы в mod_wsgi, размещенном на VPS-сервере с Apache 2.4.

Структура и файлы каталогов:

    /var/www/html/firstapp
                | -myapp.wsgi
                | -app.py
    /var/www/html/secondapp
                | -myapp.wsgi
                | -app.py
                | -templates
                    |- sample01.html
                    |-sample02.html

Теперь у меня проблемы с выяснением того, как мне следует управлять маршрутизацией в моем app.py в каталоге secondapp, который включает в себя форму ввода с методом post.

app.py в каталоге secondapp:

    from flask import Flask, render_template, request
    app = Flask(__name__)
    @app.route('/')
    def index():
    message="Good Morning!"
    return render_template("sample01.html", message=message)

    @app.route('/add',methods=['POST'])
    def add():
    if request.method =='POST':
        result = request.form['new_num']
    return render_template("sample02.html", result=result)

    if __name__ == '__main__'
        app.run()

sample01.html:

    <body>{{message}}
    <form action="/add" method="post">
      <p>Input number:</p>
      <input type="text" name="new_num" >
      <input type="submit" value="Do">
    </form>
    </body>

sample02.html:

    <body>
    <p>Your input is as below. </p>
    {{result}}
    </body>

VirtualHost:

    LoadModule wsgi_module /usr/lib64/httpd/modules/mod_wsgi.so
    <VirtualHost *:80>
    ServerName abc.com

    DocumentRoot /var/www/html/firstapp
    WSGIDaemonProcess first
    WSGIScriptAlias /firstapp /var/www/html/firstapp/myapp.wsgi
    <Location /firstapp>
    WSGIProcessGroup first
    </Location>
    <Directory "/var/www/html/firstapp">
    Require all granted
    </Directory>

    DocumentRoot /var/www/html/secondapp

    WSGIDaemonProcess second
    WSGIScriptAlias /secondapp /var/www/html/secondapp/myapp.wsgi
    <Location /secondapp>
    WSGIProcessGroup second
    </Location>
    <Directory "/var/www/html/secondapp/">
    Options Includes ExecCGI FollowSymLinks
    Require all granted
    </Directory>
    </VirtualHost>

С этими настройками, когда я нажимаю кнопку отправки в sample01.html, он указывает на URL-адрес «abc.com/add» вместо «abc.com/secondapp/add».'URL.Я предполагаю, что не правильно устанавливаю маршрут документа, но я не мог понять, как.

Любой совет действительно ценится.

...