Django学习(四) Django提供的后台管理系统以及如何定义URL路由

  一旦你建立了模型Models,那么Django就可以为你创建一个专业的,可以提供给生成用的后台管理站点。这个站点可以提供给有权限的人进行已有模型Models数据的增删改查。

将新建的模型Models是很容易的,如下:

下面是Article模型,其位于news文件的models.py文件中

mysite/news/models.py

from django.db import models

class Article(models.Model):
pub_date = models.DateField()
headline = models.CharField(max_length=200)
content = models.TextField()
reporter = models.ForeignKey(Reporter)

  现在将Article注册到Django提供的后台管理系统中,如下,通过django.contrib提供的admin即可完成此项工作。

mysite/news/admin.py
from django.contrib import admin from . import models admin.site.register(models.Article)

  

  另外,如果想让程序对外能够通过http访问到,需要有一定的url路由规则才可以。django中定义url路由也是很简单的。如下:

  

可见,django中定义url路由是通过一个交urlpatterns的列表,里面存放的是一个一个url对象,url对象第一个参数是一个正则表达式,代表的是http访问的url路径,第二个参数是函数,用来处理通过第一个url过来的请求并返回结果。When a user requests a page, Django runs through each pattern, in order, and stops at the first one that matches the requested URL. (If none of them matches, Django calls a special-case 404 view.) 当请求到达时,django会匹配每一个url,取第一个适合的返回,如果找不到则报404错误。

例如,如果请求URl为/articles/2005/05/39323/,那么django则会调用news.views.article_detail(request,'2005','05','39293')函数。

mysite/news/urls.py
from django.conf.urls import url from . import views urlpatterns = [
url(r'^articles/([0-9]{4})/$', views.year_archive),
url(r'^articles/([0-9]{4})/([0-9]{2})/$', views.month_archive),
url(r'^articles/([0-9]{4})/([0-9]{2})/([0-9]+)/$', views.article_detail),
]

    

上一篇:Django URL (路由系统)


下一篇:django url路由参数错误