学习 django 遇到点问题

2014-12-18 10:39:40 +08:00
 happywowwow
1. 第一个是关于django里面的generic模板。
从头开始都是自己一条url()对应一个view,之后发现有generic模板,因为边学边做的是个博客,所以发现这个generic太好用了。
即使文档里没有的,看看源码也行。尤其几个对应的TemplateView, ListView, DetailView, FormView差不多可以解决我的需求了。
但写到后面,又发现好像需求变多了,要重写父类接口的情况变多了,甚至有时候变得很繁复。
所以,想问的是,django开发里面的它自身的这套generic模板适用情况是怎么的?个人项目和企业项目里面这套generic是怎么样个存在?

2. 关于url里面的中文匹配
首先有这里三条规则
2.1 url(r'^topics/(?P<pk>.*)/$'……)
2.2 url(r'^topics/(?P<pk>[\u4e00-\u9fa5]+)/$'……)
2.3 url(r'^topics/(?P<pk>[-a-zA-Z0-9%]+)/$'……)

然后这里有三种url
(1)topics/银河护卫队 编码之后是(2)
(2)topics/%E9%93%B6%E6%B2%B3%E6%8A%A4%E5%8D%AB%E9%98%9F
(3) 还有不全的编码,假设取(银)这个字的前两位topics/%E9%93

2.1 可以匹配(1)(2)(3)的,包括中文
2.2 好像啥也不能匹配
2.3 不能匹配(1)(2),但是可以匹配(3)

我说的不能匹配的意思是开启django的debug模式,提示The current URL, blog/topics/银河护卫队/, didn't match any of these。

中文在url里不是会被编码为%E9%93%B6 这样么,但是django的url里面得到好像就是中文本身,但又怎么用中文的去匹配呢?

发帖时候发现我忘了中文要Unicode处理,然后又试了下,使用url(u'^topics/(?P<pk>[\u4e00-\u9fa5]+)/$'……)可以很好支持中文
2647 次点击
所在节点    Python
3 条回复
ljcarsenal
2014-12-18 10:50:33 +08:00
url匹配那个,不加 /$应该能匹配的吧
happywowwow
2014-12-18 11:02:56 +08:00
@ljcarsenal 你说的是哪一条? 为什么不用/$ 这不是匹配结尾么
laike9m
2014-12-19 20:25:48 +08:00
全 functional view 的飘过

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/154779

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX