V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
MyLeoWind
V2EX  ›  Python

Jinja2 里的命名空间(import)是怎么回事?

  •  
  •   MyLeoWind · 2016-05-01 23:36:45 +08:00 · 3634 次点击
    这是一个创建于 3120 天前的主题,其中的信息可能已经有所发展或是发生改变。
    我正在看《 Flask Web 开发》,都没有在 flask app 里 import 的方法,也能写到模板里使用呢?
    7 条回复    2016-05-03 10:55:25 +08:00
    hxndg
        1
    hxndg  
       2016-05-02 00:34:27 +08:00
    我没有看明白你的意思哈,什么叫做 import 的方法?同一个包内的化,都在__inti__.py 里可以直接看到的阿?
    vJianZhen
        2
    vJianZhen  
       2016-05-02 00:50:28 +08:00 via Android
    楼主的意思应该是在 Jinja2 里面有些方法,比如 url_for()没有 import 进来就直接用了,似乎不合道理。 JInja2 里的 import 是 Jinja2 的语法,跟 Python 里头的不是一个东西。至于你说为什么没有 import 就用了,那应该是用 Flask 创建 app 时候做了一些事,以及一个叫做请求上下文的东西。
    MyLeoWind
        3
    MyLeoWind  
    OP
       2016-05-02 09:12:12 +08:00 via Android
    @vJianZhen 嗯我说的是 python 的 import 不是模板的 import 。可能我需要看源码+试验一下。
    vJianZhen
        4
    vJianZhen  
       2016-05-02 10:23:37 +08:00
    @MyLeoWind 我还没发现 Python 中没有 import 直接使用的例子,麻烦上代码
    donghouhe
        5
    donghouhe  
       2016-05-02 11:16:11 +08:00
    可能书里代码精简了那部分,另外很可能 jinja 本就可以用一些过滤器啦函数啦,那些并不属于 python ,属于 jinja 自带,不要被相同的函数名字迷惑了
    3b295
        6
    3b295  
       2016-05-03 09:42:31 +08:00
    书里有
    @main.app_context_processor
    def inject_permission():
    return dict(Permission=Permission)
    这里 Permission 就可以在模板里用了
    flask 默认也会加一些函数进 jinja2 里,所以 url_for 这种可以直接用

    给个链接吧
    http://dormousehole.readthedocs.io/en/latest/templating.html
    MyLeoWind
        7
    MyLeoWind  
    OP
       2016-05-03 10:55:25 +08:00 via Android
    @3b295 谢谢,@vJianZhen 给我的提示就是这样的,只是自己没找到文档验证。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2870 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 20ms · UTC 03:46 · PVG 11:46 · LAX 19:46 · JFK 22:46
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.