Уведомления

Группа в Telegram: @pythonsu

#1 Окт. 7, 2013 15:18:48

Saytik
От:
Зарегистрирован: 2010-10-17
Сообщения: 19
Репутация: +  0  -
Профиль   Отправить e-mail  

не получается запустить через wsgi простой html шаблон через python + jinja2

и снова завис уже на несколько дней …

хочу запустить просто html страницу с помощью python + jinja2
(nginx + uwsgi)

Скрипт:

import sys
import os
from jinja2 import Environment, FileSystemLoader
sys.path.insert(0, os.path.dirname(os.path.abspath(__file__)))
def application(environ, start_response):
    start_response("200 OK", [])
    templ_dir = Environment(loader=FileSystemLoader(os.path.join(os.path.dirname(__file__), 'templates')))
    template = templ_dir.get_template('base.html')
    return [template.render()]

страница загружается с кодом 200,ОК, но html из файла base.html не выводит …
Хотя если запускать вот так скрипт из консоли - html выводится (python3 start.py):
if __name__ == "__main__":
    env = Environment(loader=FileSystemLoader(os.path.join(os.path.dirname(__file__), 'templates')))
    template = env.get_template('base.html')
    print(template.render())

подскажите чего не хватает этому wsgi … читал и на русском и на инглыше пробовал, не доходит пока-что много слов мало понимаю так как практики с питоном мало …



Офлайн

#2 Окт. 7, 2013 15:44:54

Saytik
От:
Зарегистрирован: 2010-10-17
Сообщения: 19
Репутация: +  0  -
Профиль   Отправить e-mail  

не получается запустить через wsgi простой html шаблон через python + jinja2

в доке wsgi написано что функция application должна возвращать итеруемый объект.
Наверное template.render() надо как-то сделать итеруемым объектом …
это что значит чтобы каждая строка html была элементом списка что-ли ?



Офлайн

#3 Окт. 7, 2013 16:08:43

bismigalis
Зарегистрирован: 2010-10-02
Сообщения: 449
Репутация: +  47  -
Профиль   Отправить e-mail  

не получается запустить через wsgi простой html шаблон через python + jinja2

вообще-то строка тоже итерируемый объект

я незнаю, но может надо просто

return template.render()

Офлайн

#4 Окт. 7, 2013 16:27:05

Saytik
От:
Зарегистрирован: 2010-10-17
Сообщения: 19
Репутация: +  0  -
Профиль   Отправить e-mail  

не получается запустить через wsgi простой html шаблон через python + jinja2

пробовал - то же самое … :-(



Офлайн

#5 Окт. 7, 2013 16:42:50

bismigalis
Зарегистрирован: 2010-10-02
Сообщения: 449
Репутация: +  47  -
Профиль   Отправить e-mail  

не получается запустить через wsgi простой html шаблон через python + jinja2

а просто строку выводит?

return ['Hello World!']

Офлайн

#6 Окт. 7, 2013 16:51:11

Saytik
От:
Зарегистрирован: 2010-10-17
Сообщения: 19
Репутация: +  0  -
Профиль   Отправить e-mail  

не получается запустить через wsgi простой html шаблон через python + jinja2

да выводит … Hello word это пока-что единственное что я добился ))
попробовал еще вот такое не проканало

    return [i for i in template.render().readlines()]
AttributeError: 'str' object has no attribute 'readlines'



Отредактировано Saytik (Окт. 7, 2013 16:52:26)

Офлайн

#7 Окт. 7, 2013 16:54:50

Saytik
От:
Зарегистрирован: 2010-10-17
Сообщения: 19
Репутация: +  0  -
Профиль   Отправить e-mail  

не получается запустить через wsgi простой html шаблон через python + jinja2

хотя вот это не показывает

return ['Hello World!']

а вот так выводит:
return b"Hello World"

и вот так выводит:
return [b"Hello World"]



Отредактировано Saytik (Окт. 7, 2013 16:56:12)

Офлайн

#8 Окт. 7, 2013 17:03:41

bismigalis
Зарегистрирован: 2010-10-02
Сообщения: 449
Репутация: +  47  -
Профиль   Отправить e-mail  

не получается запустить через wsgi простой html шаблон через python + jinja2

template.render()
возвращает unicode строку

а тебе надо получается байты возвращать

Отредактировано bismigalis (Окт. 7, 2013 17:06:59)

Офлайн

#9 Окт. 7, 2013 17:10:00

Saytik
От:
Зарегистрирован: 2010-10-17
Сообщения: 19
Репутация: +  0  -
Профиль   Отправить e-mail  

не получается запустить через wsgi простой html шаблон через python + jinja2

вот с этими кодировками мне по сей день не доходит …
какая разница в какой кодировке я возвращаю строчку , главное браузеру где-то указать в какой кодировке читать ее правильно ?
читал вот статью по кодировкам и откуда utf-8 и зачем появилась, но суть мне так и не раскрыта зачем иногда надо u'' добавлять к тексту, а в данном случае почему не u'' а надо b'' ….



Офлайн

#10 Окт. 7, 2013 17:15:31

bismigalis
Зарегистрирован: 2010-10-02
Сообщения: 449
Репутация: +  47  -
Профиль   Отправить e-mail  

не получается запустить через wsgi простой html шаблон через python + jinja2

ты на каком питоне?

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version