我安装了Flask-FlatPages
并尝试运行这个简单的应用程序(以显示.md
个文件):
import sys
from flask import Flask, render_template
from flask_flatpages import FlatPages, pygments_style_defs
DEBUG = True
FLATPAGES_AUTO_RELOAD = DEBUG
FLATPAGES_EXTENSION = '.md'
FLATPAGES_ROOT = 'content'
POST_DIR = 'posts'
app = Flask(__name__)
flatpages = FlatPages(app)
app.config.from_object(__name__)
@app.route("/posts/")
def posts():
posts = [p for p in flatpages if p.path.startswith(POST_DIR)]
posts.sort(key=lambda item:item['date'], reverse=False)
return render_template('posts.html', posts=posts)
@app.route('/posts/<name>/')
def post(name):
path = '{}/{}'.format(POST_DIR, name)
post = flatpages.get_or_404(path)
return render_template('post.html', post=post)
if __name__ == "__main__":
app.run(host='0.0.0.0', debug=True)
每当我运行应用程序时,都会收到此错误:
NameError:name&#39; unicode&#39;未定义
引用(烧瓶 - flatpages)就是这样:
File "/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/flask_flatpages/__init__.py", line 290, in _pages
_walk(unicode(self.root))
我知道{3}中的unicode
现在是str
- 我可以从我的应用中解决问题(不修改包)吗?
答案 0 :(得分:3)
如果软件包不支持Python 3,那么你就不能轻易地使它工作了。您可以等待支持或找到替代包。如果唯一的问题是缺少unicode
的定义,那么它可以像
import builtins
builtins.unicode = str
导入flask_flatpages
之前。但我怀疑错过unicode
是唯一的问题。