1异常处理
常规办法
try: question = Question.objects.get(pk = question_id) except Question.DoesNotExist: raise Http404("sorry no exist")
新写法
from django.shortcuts import render,get_object_or_404 question = get_object_or_404(Question,pk=question_id)
2页面渲染
return render(request,'app/index.html',{a':a})
3应用注册
INSTALLED_APPS = [ 'polls.apps.PollsConfig', ]
4 模板路径
模板文件的路径应该是 polls/templates/polls/index.html
。因为``app_directories`` 模板加载器是通过上述描述的方法运行的,所以Django可以引用到 polls/index.html
这一模板了。
虽然我们现在可以将模板文件直接放在 polls/templates
文件夹中(而不是再建立一个 polls
子文件夹),但是这样做不太好。Django 将会选择第一个匹配的模板文件,如果你有一个模板文件正好和另一个应用中的某个模板文件重名,Django 没有办法 区分 它们。我们需要帮助 Django 选择正确的模板,最好的方法就是把他们放入各自的 命名空间 中,也就是把这些模板放入一个和 自身 应用重名的子文件夹里。
5外键使用
两个模型Question Choice
>>> q = Question.objects.get(pk=1) # 显示另一个模型中相关的项目 >>> q.choice_set.all() # 创建相关项目 >>> q.choice_set.create(choice_text='Not much', votes=0) # 赋值给另一个对象 >>> c = q.choice_set.create(choice_text='Just hacking again', votes=0) # 访问相关属性 >>> c.question # 获取相关项目 >>> q.choice_set.all() # 统计数量 >>> q.choice_set.count() 3