views.py其实是一个视图文件,主要用于数据的处理,如从数据库中查询数据,以及页面跳转的工作。
我们在django入门1:django框架的简介 中有介绍到django框架的执行过程,django首先通过urls.py里面的url配置的name="xxx"的属性找到views.py里面对应的处理方法,然后通过views视图将信息展示在网页中。
下面我们将结合前面的urls.py来做一个页面跳转功能,如输入 http://127.0.0.1/login_view就会跳转到登录界面。
第一步:首先我们在主urls.py(在项目同名文件夹下)里面添加一个url路径配置,当我们输入任何url网址的时候,都会交给blog模块下的urls.py里面去处理,配置如下。
urlpatterns = [ url(r'^admin/', admin.site.urls), # 先不管这个,最后面会有介绍到 url(r'^', include('blog.urls')), # r'^'表示任何请求的意思 ]
注意,r'^$' 表示网址后面为空,并不是任何的意思,它只能在子urls.py里面使用,在主urls.py里面千万不要加“$”符号,以下是错误写法。
urlpatterns = [ url(r'^admin/', admin.site.urls), # 先不管这个,最后面会有介绍到 url(r'^$', include('blog.urls')), # 错误写法 ]
第二步:在blog模块下面的urls.py里面添加一个urlspatterns配置,如下是子urls.py下的正则表达式的网址,可以用“$”符号结尾。
from django.conf.urls import url from .import views urlpatterns = [ # 跳转到登录页面 url(r'^login_view/$', views.login_view, name='login_view'), ]
它对应的跳转方法是views.py视图下面的login_views方法,如果是浏览器直接输入网址,后面的“name=xxx”可以不用,如果是如a标签跳转,则需要根据这个name来找到参数二中views.py里面的login_view方法(后面的django模板课程会讲到)。
第三步:在views里面实现login_view方法,实现页面跳转,可以携带key:value的参数,如果为{},则表示不携带参数到页面。
from django.shortcuts import render,render_to_response def login_view(request): return render_to_response('user/login_view.html', {key:value}) # 或者 # return render(request,'user/login_view.html', {key:value})
第四步:我们需要在blog下面新建一个templates/user/login_view.html的html文件,其中templates必须要这么命名,user文件夹随便命名,但必须要对应上面的跳转网址,如图。
login_view.html和普通的html没有什么两样,就是一个form表单,效果如图。