Форум сайта python.su
0
Добрый день, друзья
Прохожу урок по ссылке:
https://habr.com/post/346340/
Мой код:
\app\routes.py
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
from flask import render_template
from app import app
@app.route('/')
@app.route('/index')
def index():
user = {'username': 'Эльдар Рязанов'}
posts = [
{
'author': {'username': 'John'},
'body': 'Beautiful day in Portland!'
},
{
'author': {'username': 'Susan'},
'body': 'The Avengers movie was so cool!'
},
{
'author': {'username': 'Ипполит'},
'body': 'Какая гадость эта ваша заливная рыба!!'
}
]
return render_template('index.html', title='Home', user=user, posts=posts)
quant@N73:~/microblog$ source venv/bin/activate
(venv) quant@N73:~/microblog$ export FLASK_APP=microblog.py
(venv) quant@N73:~/microblog$ export FLASK_DEBUG=1
(venv) quant@N73:~/microblog$ flask run
* Serving Flask app "microblog.py" (lazy loading)
* Environment: production
WARNING: Do not use the development server in a production environment.
Use a production WSGI server instead.
* Debug mode: on
* Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
* Restarting with stat
* Debugger is active!
* Debugger PIN: 195-778-260
UnicodeDecodeError
UnicodeDecodeError: 'ascii' codec can't decode byte 0xd0 in position 0: ordinal not in range(128)
Traceback (most recent call last)
File "/home/quant/.local/lib/python2.7/site-packages/flask/app.py", line 2309, in __call__
return self.wsgi_app(environ, start_response)
File "/home/quant/.local/lib/python2.7/site-packages/flask/app.py", line 2295, in wsgi_app
response = self.handle_exception(e)
File "/home/quant/.local/lib/python2.7/site-packages/flask/app.py", line 1741, in handle_exception
reraise(exc_type, exc_value, tb)
File "/home/quant/.local/lib/python2.7/site-packages/flask/app.py", line 2292, in wsgi_app
response = self.full_dispatch_request()
File "/home/quant/.local/lib/python2.7/site-packages/flask/app.py", line 1815, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/home/quant/.local/lib/python2.7/site-packages/flask/app.py", line 1718, in handle_user_exception
reraise(exc_type, exc_value, tb)
File "/home/quant/.local/lib/python2.7/site-packages/flask/app.py", line 1813, in full_dispatch_request
rv = self.dispatch_request()
File "/home/quant/.local/lib/python2.7/site-packages/flask/app.py", line 1799, in dispatch_request
return self.view_functions[rule.endpoint](**req.view_args)
File "/home/quant/microblog/app/routes.py", line 34, in index
return render_template('index.html', title='Home', user=user, posts=posts)
File "/home/quant/.local/lib/python2.7/site-packages/flask/templating.py", line 135, in render_template
context, ctx.app)
File "/home/quant/.local/lib/python2.7/site-packages/flask/templating.py", line 117, in _render
rv = template.render(context)
File "/home/quant/.local/lib/python2.7/site-packages/jinja2/environment.py", line 1008, in render
return self.environment.handle_exception(exc_info, True)
File "/home/quant/.local/lib/python2.7/site-packages/jinja2/environment.py", line 780, in handle_exception
reraise(exc_type, exc_value, tb)
File "/home/quant/microblog/app/templates/index.html", line 12, in top-level template code
<h1>Hello, {{ user.username }}!</h1>
UnicodeDecodeError: 'ascii' codec can't decode byte 0xd0 in position 0: ordinal not in range(128)

quant@N73:~/microblog$ source venv/bin/activate
(venv) quant@N73:~/microblog$ alias python=python3
(venv) quant@N73:~/microblog$ python -V
Python 3.6.5
import sys
reload(sys)
sys.setdefaultencoding('utf-8')

Отредактировано Pugna (Авг. 20, 2018 18:19:35)
Офлайн
857
Поставь flask для третьего питона. Что там второй питон делает вообще? Он вообще не нужен для flask'а.
PugnaВ третьем питоне кодировка и так utf-8. Во втором питоне ascii была, поэтому требовалось всегда ставить объявление кодировки.#!/usr/bin/env python3 # -*- coding: utf-8 -*-
Отредактировано py.user.next (Авг. 21, 2018 00:46:28)
Офлайн
0
py.user.nextОк, поставил, но всё тоже самое происходит, делал так:
Поставь flask для третьего питона. Что там второй питон делает вообще? Он вообще не нужен для flask'а.
quant@N73:~$ python -V
Python 2.7.15rc1
quant@N73:~$ pip uninstall flask
quant@N73:~$ alias python=python3
quant@N73:~$ python -V
Python 3.6.5
quant@N73:~$ pip install flask==0.12.2
Офлайн
0
Прошу прощения, я ставил пакеты не в то окружение)
решение было:
quant@N73:~$ python3
Python 3.6.5 (default, Apr 1 2018, 05:46:30)
[GCC 7.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> print(sys.executable)
/usr/bin/python2.7
PYTHONPATH=/usr/local/bin/python3.6
Python 3.6.5 (default, Apr 1 2018, 05:46:30)
[GCC 7.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> print(sys.executable)
/usr/bin/python3
quant@N73:~$ pip3 install flask==0.12.2
Офлайн