1.创建404.html
意义:一旦输入有误,不会直接报错。
第一步:修改settings.py文件
第二步:在templates文件下,创建404.html \
2.做views的页面跳转
第一步:创建项目里urls.py
urlpatterns=[
url(r'^admin/', include(admin.site.urls)),
url(r'^depart/',include('company.urls',namespace='company')),
url(r'^com/',include('company.urls')),
]
namespace-----是为了把网站的相对路径变为绝对路径。(包括我们html里面的a链接 href="namespace:name")往后如果修改r后面的路径,不影响使用
第二步:创建app下面的urls.py
from django.conf.urls import include,url
from django.contrib import admin
from . import views
urlpatterns = [
url(r'^admin/', include(admin.site.urls)),
url(r'^companyA/$',views.departall,name='departall'),
url(r'^company/add$',views.depart_add,name='depart_add'),
url(r'^company/add_list$',views.departNewAdd,name='departNewAdd'),
#url(r'^companyOne/(\b+)',views.departMobanOne),
]
第三步:创建app下的views.py 创建首页面 departall -------创建增加内容页面 depart_add--------创建提交页面 departNewAdd
from django.shortcuts import render
from django.http import *
from .models import *
from django.core.urlresolvers import reverse
# Create your views here.
#def haha(request):
# return HttpResponse('haha...')
def departall(request):
bookinfo_list =depart.objects.all()
context={
'departName':bookinfo_list,
'titlt':'这是部门名'
}
return render(request=request,template_name='companyall/departall.html',context=context)
def departMobanOne(request,pk):
bookinfo_list =depart.objects.get(pk=pk)
context={
'departName':bookinfo_list,
'titlt':'这是部门名'
}
return render(request=request,template_name='companyall/depart_info.html',context=context)
def depart_add(request):
return render(request=request,template_name='companyall/depart_add.html',context=None)
def departNewAdd(request):
#处理新增
infos=request.POST
depart1=infos.get('btitle')
#包装对象
depart2=depart()
depart2.dname=depart1
depart2.save()
#转发
#return departall(request) ------重新调用函数
#重定向
url=reverse('company:departall')-------需要返回的页面的namespace:name
return HttpResponseRedirect(url)·
转发:客户发送一次请求(增填内容的一个页面),服务端只给一次响应(新的页面),但是路径还是第一次的路径,(并且程序内部跳转一次)。但客户在新的页面刷新。页面会直接报错
充定向:客户发送一次请求,程序响应一次(提醒客户在发送一次请求,这都是程序内部自己实现的)。程序在响应一次。
客户在刷新页面,还可以正常使用