Найти - Пользователи
Полная версия: flask + apache != Jinja?
Начало » Web » flask + apache != Jinja?
1 2 3
Australicys
Форумчане, привет!

С гайдами настроил apache+flask на Ubuntu, темплэйты рендерит, но есть одна загвоздка:

Как вы знаете, в python можно делать так
render_template('index.html', arr=arr)

и arr передается в html темплэйт
В html можно сделать так:
{%for i in arr%}
{{i | safe}}
{%endfor%}

ПРОБЛЕМА
Когда я передаю данные в темплэйт, на сайте выдает ошибку. Переменные удаляю, все возвращается к работе. Это почему такое?

Заранее спасибо за пояснения

UPD: Если вообще что-то питоновское вставить в тело функции фласка, то сайт не рендерится
JOHN_16
Australicys
ВСЕГДА указывайте текст traceback ошибки
Australicys
JOHN_16

Хорошо, принял к сведению

собственно, с браузера в аттаче
сервак перезапускается ок

вот что в конфиге
<VirtualHost *:80>
		ServerName "onlinewear.ru"
		ServerAdmin admin@onlinewear.ru
		WSGIScriptAlias / /var/www/showcase/showcase.wsgi
		<Directory /var/www/showcase/showcase/>
			Require all granted
		</Directory>
		Alias /static /var/www/showcase/showcase/static
		<Directory /var/www/showcase/showcase/static/>
			Require all granted
		</Directory>
		ErrorLog ${APACHE_LOG_DIR}/error.log
		LogLevel warn
		CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

вот лог
[Wed Nov 25 21:15:30.540408 2015] [:error] [pid 26192:tid 139924613785344] [client 31.40.99.222:55383] mod_wsgi (pid=26192): Target WSGI script '/var/www/showcase/showcase.wsgi' cannot be loaded as Python module.
[Wed Nov 25 21:15:30.540481 2015] [:error] [pid 26192:tid 139924613785344] [client 31.40.99.222:55383] mod_wsgi (pid=26192): Exception occurred processing WSGI script '/var/www/showcase/showcase.wsgi'.
[Wed Nov 25 21:15:30.540594 2015] [:error] [pid 26192:tid 139924613785344] [client 31.40.99.222:55383] Traceback (most recent call last):
[Wed Nov 25 21:15:30.540650 2015] [:error] [pid 26192:tid 139924613785344] [client 31.40.99.222:55383]   File "/var/www/showcase/showcase.wsgi", line 7, in <module>
[Wed Nov 25 21:15:30.540803 2015] [:error] [pid 26192:tid 139924613785344] [client 31.40.99.222:55383]     from showcase import app as application
[Wed Nov 25 21:15:30.540912 2015] [:error] [pid 26192:tid 139924613785344] [client 31.40.99.222:55383]   File "/var/www/showcase/showcase/__init__.py", line 45
[Wed Nov 25 21:15:30.540936 2015] [:error] [pid 26192:tid 139924613785344] [client 31.40.99.222:55383]     return render_template('index.html')
[Wed Nov 25 21:15:30.540950 2015] [:error] [pid 26192:tid 139924613785344] [client 31.40.99.222:55383]                                        ^
[Wed Nov 25 21:15:30.540963 2015] [:error] [pid 26192:tid 139924613785344] [client 31.40.99.222:55383] IndentationError: unindent does not match any outer indentation level
JOHN_16
1) 500 код у вас никак не обрабатывается, поищите инфу в логах апача, о том что происходило.
2) само приложение, без апача работает корректно? Проверяли?
Australicys
без апача работает корректно, проверял.

Я что-то намудрил с конфигами и зависимостями, очевидно
Как разобраться?
JOHN_16
Australicys
рано вы перелезли на Веб-сервер. Для начала ваше Flask приложение должно быть работоспособным само по себе. Ошибка указывает на то что данная строка имеет отступ не соответствующий другим. Исправьте отступы.
Australicys
JOHN_16

хм, а почему если я пишу так
app = Flask(__name__)
@app.route('/')
def index():
    return render_template('index.html')

все работает, а вот так

app = Flask(__name__)
@app.route('/')
def index():
    a = ''
    return render_template('index.html')

нет?
JOHN_16
Australicys
похоже вы все таки не приняли к сведению что всегда нужно указывать текст ошибку. А Знаете почему? потому что там чаще всего указан ответ на подобный вопрос.
Если же речь идет об отступах..то проверяйте, может вы разными редакторами пользуетесь и совмещаете табуляцию и проблемы, или еще какие причины.
Подобный код не может быть не рабочим просто потому что вы туда переменную добавили.
Australicys
JOHN_16

сори, тогда я не до конца понял
где найти текст ошибку, раздуплите, пожалуйста
JOHN_16
Australicys
если речь идет о приложении которое работает в Апаче, то в его логах должно это значиться - так же как вы указали лог в прошлый раз
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB