django-web-app-book icon indicating copy to clipboard operation
django-web-app-book copied to clipboard

初学者,有一个疑问,希望能细心解答

Open yuzeshan opened this issue 11 years ago • 8 comments

1、编写数据模型时,@models.permalink def get_absolute_url(self): return ('post', (), {'pk': self.pk})定义这个函数是什么意思呢? 2、views中post = get_object_or_404(Post, pk=pk)这个怎么能获取数据库中指定的内容对象?pk是什么呢? 3、编写urls时,?P\d+)正则表达式又是什么意思呢? 问题比较多,请原谅我这个菜鸟。

yuzeshan avatar Oct 24 '14 14:10 yuzeshan

1.如果不定义这个函数,我们在模版中访问一个单元条记录的时候,哪链接是这样的一条记录:/post/1,在模版中,我们只能拿到记录的ID,于是我们会这样写:/post/{{ post.id}},但当我们需要修改下url的时候,比如要改成/p/1,这时我们就需要中到各个模版中去修改,但如果使用了1中的函数之后,我们只要在编写的时候使用了这样的代码:post.get_absolute_url,那么需要修改链接之时,只需在urls中修改即可,而不需要跑到各个模版中修改代码。

2.这个问题,你可以看下这里:

http://zhangfortune.iteye.com/blog/2124979

3.这个其实就是一个正则分组,指定名称之后,你在编写相应的views的时候,就可以关联上指定的这个组名了。

希望能你有所帮助。

如果初学Django,建议可以先看看Django Book,中英文都有,有个大致认识之后再试着做些小项目。

wwq0327 avatar Oct 25 '14 02:10 wwq0327

哦,非常感谢你的细致回答,明白了a

yuzeshan avatar Oct 25 '14 02:10 yuzeshan

get_absolute_url 这个函数名字应该是约定的吧 可以写短的名字

pk是取已经有的字段的主键 可以用id代替(如果id是默认主键的话),不过有多个主键就不知道怎么样弄了

n37r06u3 avatar Oct 25 '14 15:10 n37r06u3

@yuzeshan 客气

@n37r06u3 确实是一个自定义的函数。但这种命名方法使用其意义非常名确。

wwq0327 avatar Oct 27 '14 01:10 wwq0327

@wwq0327 ,@n37r06u3再问一个问题啊!你们都是用什么来部署Django项目的?Apache+mod_wsgi还是nginx+uwsgi?

yuzeshan avatar Oct 27 '14 09:10 yuzeshan

@yuzeshan 我使用的是Nginx+FastCGI

wwq0327 avatar Oct 28 '14 02:10 wwq0327

@wwq0327 有比较细致的部署教程吗?给我发份过来呗!网上鱼龙混杂的,谢啦!

yuzeshan avatar Oct 28 '14 03:10 yuzeshan

请用 nginx + gunicorn

n37r06u3 avatar Oct 31 '14 15:10 n37r06u3