fogersp
@fogersp

Python Bottle: почему не применяются изменения в коде?

Доброго времени суток!
Начинаю изучать Python и веб-фреймворк Bottle. Так как перехожу с PHP на Python, после PHP все как-то сложновато понимать.
Использую mod_wsgi apache.
Конфиг виртуал хоста такой:
<VirtualHost *:80>
        ServerName bottle
        DocumentRoot /var/www/bottle/
        ErrorLog /var/www/bottle/error.log
        Customlog /var/www/bottle/access.log combined
        WSGIDaemonProcess hello user=www-data group=www-data processes=1 threads=5
        WSGIScriptAlias / /var/www/bottle/adapter.wsgi
        WSGIProcessGroup hello
        WSGIApplicationGroup %{GLOBAL}
        WSGIScriptReloading On
<Directory /var/www/bottle/>
        Options FollowSymLinks ExecCGI
        AddHandler wsgi-script .wsgi
        Order allow,deny
        AllowOverride All
        Allow from all
</Directory>
</VirtualHost>


Не могу понять одного: почему когда я меняю что-нибудь в коде, изменения не применяются в выводе браузера или добавляешь route, но возвращается 404 ошибка. Все решается service apache2 reload. Сначала думал может кэш браузера - но нет. Вроде и нашел для конфига WSGIScriptReloading On - написано что должен как раз это решать, но почему-то, не помогает. Непонятно еще то, что я могу в функции поменять return "ABC" на return "DEF" и изменения видны в браузере, а например удалишь или добавишь новую функцию - помогает только релоад апача. Гуглил - ничего подобного не нашел, значит я, как новичок, что-то не монимаю и делаю не так.

adapter.wsgi:

import sys, os, bottle
sys.path.append(os.path.dirname(os.path.abspath(__file__)))
os.chdir(os.path.dirname(os.path.abspath(__file__)))
import hello
application = bottle.default_app()


hello.py

from bottle import Bottle, route, run, template, request, get, post
app = Bottle()
Route('/test')
def test():
    return "Test!"

Route('/hello/<name>')
def greet(name='user'):
    return template('Hello <b>{{name}}</b>, how are you?', name=name)


Помогите советом! Не хочется связываться пока что с более груженными фреймворками для Питона - понравился Bottle тем что в одном файле и для новичка проще освоить. Но, пока что освоение застопорилось
  • Вопрос задан
  • 2707 просмотров
Решения вопроса 1
Rrooom
@Rrooom
Вы никогда не запускали php под php-fpm? Там также.

mod_wsgi - суть fastcgi и изменения вступят в силу только после перезагрузки сервера.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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