python的jinja中中文问题
代言
代言 2017-06-14 10:52:27
0
1
877
# -*- coding: utf-8 -*-
import shelve
from datetime import datetime
from flask import Flask, render_template, redirect, request, escape, Markup

app = Flask(__name__)

DATA_FILE = 'message'

def save_data(name, comment, create_at):
    """保存提交的数据"""
    database = shelve.open(DATA_FILE)
    if 'message_list' not in database:
        message_list = []
    else:
        message_list = database['message_list']

    message_list.insert(0, {
        'name': name,
        'comment': comment,
        'create_at': create_at,
    })
    database['message_list'] = message_list
    database.close()

def load_data():
    """返回已提交的数据"""
    database = shelve.open(DATA_FILE)
    message_list = database.get('message_list', [])
    database.close()
    return message_list

def post():
    """用于提交评论的URL"""
    name = request.form.get('name')
    comment = request.form.get('comment')
    create_at = datetime.now()

    save_data(name, comment, create_at)
    return redirect('/')

@app.route('/')
def index():
    message_list = load_data()
    return render_template('index.html', message_list=message_list)

@app.template_filter('nl2br')
def nl2br_filter(s):
    return escape(s).replace("\n", Markup('<br>'))

@app.template_filter('datetime_fmt')
def datetime_fmt_filter(dt):
    return dt.strftime('%Y-%m-%d %H:%M:%S')

if __name__ == '__main__':
    app.run('127.0.0.1', 8001, debug=True)
{% for message in message_list %}
        <h3>{{ message.name }} 的消息 ({{ message.create_at | datetime_fmt }}):</h3>
        <p>
            {{ message.comment | nl2br }}<p>
        </p>
{% endfor %}

运行程序错误提示:

UnicodeDecodeError

UnicodeDecodeError: 'ascii' codec can't decode byte 0xef in position 16: ordinal not in range(128)

就是有中文的这一行出错了,请问怎么处理呢

代言
代言

모든 응답(1)
刘奇

报错应该是你python程序那边报吧, 试下把你python那边的中文编码处理下, 或者试下全部用unicode吧, 参考下面:

with open('test_%s.html' % date, 'w') as f:
        f.write(a.render(
            {
                'date': date,
                'total': 30,
                'title': u'报告' % date,  
                u'project_list': project_info
            }).encode('utf8')
        )
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!