Django url,从一个页面调到另个页面的方法
创建项目和应用
django-adminstartprojectzqxt_views(项目名) cdzqxt_views pythonmanage.pystartappcalc(应用名)
————–1.采用/add?a=4&b=5这样GET方法进行—————————
修改calc/view.py文件
fromdjango.shortcutsimportrender fromdjango.httpimportHttpResponse defadd(request): a=request.GET['a'] b=request.GET['b'] c=int(a)+int(b) returnHttpResponse(str(c))
修改zqxt_views/urls.py文件,添加一个网址来对应我们刚才新建的视图函数。
fromdjango.conf.urlsimporturl fromdjango.contribimportadmin fromcalcimportviewsascalc_views urlpatterns=[ url(r'^add/$',calc_views.add,name='add'),#注意修改了这一行 url(r'^admin/',admin.site.urls), ]
打开服务器并访问
pythonmanage.pyrunserver8003
打开网址
http://127.0.0.1:8003/add/?a=4&b=5
————–2.采用/add/3/4这样的网址的方式—————————
修改calc/views.py文件,再定义一个add2函数
defadd2(request,a,b): c=int(a)+int(b) returnHttpResponse(str(c))
接着修改zqxt_views/urls.py文件,再添加一个新的url
url(r'^add/(\d+)/(\d+)/$',calc_views.add2,name='add2'),
我们可以看到网址中多了(\d+),正则表达式中\d代表一个数字,+代表一个或多个前面的字符,写在一起\d+就是一个或多个数字,用括号括起来的意思是保存为一个子组,每一个子组将作为一个参数,被views.py中的对应视图函数接收。
我们再访问http://127.0.0.1:8003/add/4/5/就可以看到和刚才同样的效果,但是这回网址更优雅了
打开zqxt_views/urls.py
fromdjango.conf.urlsimporturl fromdjango.contribimportadmin fromcalcimportviewsascalc_views urlpatterns=[ url(r'^admin/',admin.site.urls), url(r'^add/$',calc_views.add,name='add'), url(r'^add/(\d+)/(\d+)/$',calc_views.add2,name='add2'), ]
在url(r'^add/$',calc_views.add,name='add'),中,name='add'是用来干什么滴啊?
简单说,name可用于在templates,models,views……中得到对应的网址,相当于给“网址取了一个名字”,只要名字不变,网址变了也能通过名字获取到。
为了继续弄清楚这个问题,我们先建立一个首页的视图和url
修改*calc/views.py*
fromdjango.httpimportHttpResponse fromdjango.shortcutsimportrender defindex(request): returnrender(request,'home.html')
render是渲染模板
将‘calc'这个app加入到*zqxt_views/settings.py中*
INSTALLED_APPS=[ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'calc', ]
这样,使用render的时候,Django会自动找到INSTALLED_APPS中列出的各个app下的templates中的文件。
提示:DEBUG=True的时候,Django可以自动找到各个app下static文件中的静态文件(js,css,图片,资源)
我们在calc这个app中新建一个templates文件夹,在templates中新建一个home.html
文件calc/templates/home.html中写入以下内容
title 计算4+5