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
happywowwow
V2EX  ›  Python

学习 django 遇到点问题

  •  
  •   happywowwow · 2014-12-18 10:39:40 +08:00 · 2624 次点击
    这是一个创建于 3630 天前的主题,其中的信息可能已经有所发展或是发生改变。
    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]+)/$'……)可以很好支持中文
    3 条回复    2014-12-19 20:25:48 +08:00
    ljcarsenal
        1
    ljcarsenal  
       2014-12-18 10:50:33 +08:00
    url匹配那个,不加 /$应该能匹配的吧
    happywowwow
        2
    happywowwow  
    OP
       2014-12-18 11:02:56 +08:00
    @ljcarsenal 你说的是哪一条? 为什么不用/$ 这不是匹配结尾么
    laike9m
        3
    laike9m  
       2014-12-19 20:25:48 +08:00
    全 functional view 的飘过
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5813 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 06:30 · PVG 14:30 · LAX 22:30 · JFK 01:30
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.