首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >与常规的NDjango模板相比,Django模板有哪些限制?

与常规的NDjango模板相比,Django模板有哪些限制?
EN

Stack Overflow用户
提问于 2009-05-22 16:31:29
回答 1查看 870关注 0票数 3

在NDjango和Django模板之间有什么不同,限制或者陷阱吗?我特别感兴趣的是在未来的ASP.NET MVC项目中实现它们。

我确信我将不能使用我为Django编写的任何自定义模板标记,但是我能将它们移植到NDjango上吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2009-05-23 22:42:28

是的,你会的。您可以通过编写自己的标记和过滤器集并在应用程序启动时注册它们来扩展默认标记和过滤器集。只有一件事需要记住-- filters本来就是很容易扩展的,所以你只需要实现两个简单的接口中的一个(对于无参数的IFilter使用ISimpleFilter,或者对于只有一个参数的filters使用IFilter)。对于标记,概念是相同的,但是因为NDjango本身是用F#编写的,所以从C#或VB使用ITag接口要困难一些。这当然是可行的,但有点混乱。在F#中,这是非常简单的。

在f#中,它看起来像这样:

代码语言:javascript
复制
/// A single tag implementation
and ITag = 
    /// Transforms a {% %} tag into a list of nodes and uncommited token list
    member Perform: Lexer.BlockToken -> IParser -> 
             Lexer.Token seq -> (Node list * Lexer.Token seq)

在c#中,它看起来像这样:

代码语言:javascript
复制
    public Tuple<FSharpList<Interfaces.Node>, IEnumerable<Lexer.Token>>
              Perform(Lexer.BlockToken __p1, Interfaces.IParser __p2,
                   IEnumerable<Lexer.Token> __p3)

同样,过滤器在c#中很简单-事实上,它附带的大多数过滤器都是用c#编写的。标签在f#中很简单,但在c#中就有点麻烦了

在限制方面,没有任何已知的限制,据我所知没有。

完全公开-我是ndjango的作者之一。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/898768

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档