Django 如何处理一个请求

当用户通过浏览器发送一个请求给Django网站时,Django执行过程:

1.Django首先在配置文件setting.py中找到 :ROOT_URLCONF = 'test2.urls' 作为根模块

2.加载模块,执行项目包下面的urls.py 文件中的urlpatterns

3.执行应用包下面的urls.py文件中的urlpatterns

4.遍历整个列表,通过正则表达式会找到基于view的函数或者类

5.如果没有匹配到,则会自动调用Django的错误页面

项目开发中配置url

1.在根目录下的urls文件配置include 引入应用 stu下的urls

from django.conf.urls importurl, includefrom django.contrib importadmin

urlpatterns=[

url(r'^admin/', admin.site.urls),

url(r'^student/',include('stu.urls'))

]

2.在应用stu\urls.py中配置

#coding=utf-8

from django.conf.urls importurlimportviews

urlpatterns=[

url(r'^hello/$',views.index_view)

]

3.在应用stu中的views.py文件中定义一个函数

#-*- coding: utf-8 -*-

from __future__ importunicode_literalsfrom django.http importHttpResponsefrom django.shortcuts importrender#Create your views here.

defindex_view(request):return HttpResponse('hello')

4.访问浏览器:输入127.0.0.1:8000/student/hello/

带参数的URLConf

.位置传参

#stu\urls.py

from django.conf.urls importurlimportviews

urlpatterns=[

url(r'^hello/(\d{4})/(\d{2})',views.index1_view)

]

#stu\views.py

defindex1_view(request,num1,num2):return HttpResponse('hello_%s_%s' %(num1,num2))

.关键字传参

from django.conf.urls importurl

importviews

urlpatterns=[

url(r'^hello1/(?P[0-9]{4})/(?P[0-9]{2})/(?P[0-9]{2})/$',views.index2_view)

]

defindex2_view(request,year,month,day):return HttpResponse('hello_%s_%s_%s' %(year,month,day))

.额外传参

from django.conf.urls importurlimportviews

urlpatterns=[

url(r'^hello2/(?P[0-9]{4})/(?P[0-9]{2})/(?P[0-9]{2})/$', views.index3_view,{'name':'lisi'}),

]

defindex3_view(request,year,month,day,name):return HttpResponse('hello_%s_%s_%s_%s' % (year, month, day,name))

逆向解析(防止硬编码)

.模板中的超链接

通过127.0.0.1:8000/student/ 访问视图views中index_view函数 ,进入index.html文件

在index_html文件中,通过超链接去访问 name='hello' 路由地址

获取到视图views中index4_view函数中所返回的内容

#coding=utf-8

fromdjango.conf.urls import url

import views

urlpatterns=[

url(r'^$',views.index_view),

#逆向

url(r'^hello4/(\d{2})', views.index4_view,name='hello')

]

# -*- coding: utf-8 -*-

from__future__ import unicode_literalsfromdjango.http import HttpResponsefromdjango.shortcuts import render

# Create your views here.

def index_view(request):return render(request,'index.html')

def index4_view(request,num):return HttpResponse('index4_view_%s' %num)

Title

链接1

.视图中的重定向

通过访问127.0.0.1:8000/student/hello5/ 获取到index5_view 函数

执行index5_view 通过重定向 获取访问name ='hello' 的函数

进入index4_view 函数,通过传入的参数 返回到页面

urlpatterns=[

url(r'^$',views.index_view),

#逆向

url(r'^hello4/(\d{2})', views.index4_view,name='hello'),

url(r'^hello5/', views.index5_view)

]

def index4_view(request, num):return HttpResponse('index4_view_%s' %num)

def index5_view(request):return HttpResponseRedirect(reverse('hello',args=(99,)))

django外调用url_Django学习(url配置及参数获取)相关推荐

  1. django外调用url_Django urls 配置 ,模版url调用

    urls.py 配置方法 1.先配置全局工程下的 url 分发,通过不同的url 匹配规则,分发到不同的app (app可理解为不同的站点) 一般设置全局工程的 url.py 分发到 -------- ...

  2. django外调用url_Django url

    三 分组命名匹配 上面的示例使用简单的正则表达式分组匹配(通过圆括号)来捕获URL中的值并以位置参数形式传递给视图. 在更高级的用法中,可以使用分组命名匹配的正则表达式组来捕获URL中的值并以关键字参 ...

  3. django外调用url_Django:中间件 与 案例

    " Scrapy 有中间件, Django 也有中间件,中间的作用可以用来防止爬虫等,具体不阐述. 然后就是看完前面的估计也是云里雾里的,这里给出一个 Demo ,放在github库,应该会 ...

  4. java 配置微信js sdk,微信JSSDKconfig接口注入权限验证配置的参数获取--java版

    步骤看官网文档,这里只有java后台代码 签名工具类 import java.security.MessageDigest; import java.security.NoSuchAlgorithmE ...

  5. java子类参数传递给父类_java – 为什么调用将父类作为参数的方法调用,而不是将子类作为参数获取的方法?...

    我有一个名为A的类,以及一个名为B的类,它扩展了A. 玩一些方法来理解多态行为,我遇到了一个奇怪的情况. public class Main { public static void main(Str ...

  6. url携带的参数获取并处理demo

    url demo: http://servername/webname/pagename.csp?paramName=paramValue&paramName2=paramName2& ...

  7. php django mysql配置文件_Mysql学习Django+mysql配置与简单操作数据库实例代码

    <Mysql学习Django+mysql配置与简单操作数据库实例代码>要点: 本文介绍了Mysql学习Django+mysql配置与简单操作数据库实例代码,希望对您有用.如果有疑问,可以联 ...

  8. 使用java构建一个挡板程序-5-使用webFilter实现挡板服务URL配置化

    实现方式 #mermaid-svg-QXxqGHoQSCV6YNFY {font-family:"trebuchet ms",verdana,arial,sans-serif;fo ...

  9. fastapi学习(二):路径参数获取与GET、POST参数获取

    文章目录 路径参数获取 Get参数获取 Post参数获取 完整代码 Fastapi中是用模板来匹配URL: 路径参数获取:获取自定义的构造URL时的参数 Get参数获取:获取一个URL后面带的?par ...

最新文章

  1. matplotlib 标签_为折线图添加数据标签的方法,附代码
  2. 前端技术演进(三):前端安全
  3. 北大中文期刊目录_最新版语言学C刊及北大核刊投稿方式全收录
  4. POJ 3258 -- River Hopscotch(二分)
  5. struct linger
  6. NVIDIA Jetson AGX Xavier 安装 JetPack 注意事项
  7. java long short_Java Long类shortValue()方法与示例
  8. 数字图像识别笔记(第三章-灰度变换与空间滤波)
  9. 记得收藏这12个爆款 Java 开源项目!【附源码】
  10. Linux 从查看本机地址到端口映射
  11. 几种主流编程语言的优点和缺点比较,不服来怼
  12. java 汇率转换_汇率转换 实现了一个用于多币种之间汇率转换的程序 联合开发网 - pudn.com...
  13. mx330属于什么档次的显卡
  14. 慕课网风袖小程序 一一第一阶段
  15. 第一章 Web应用程序开发基础
  16. 3055. 字符频率
  17. hiredis linux 编译,Linux系统整合hiredis
  18. 捷的軟體開發流程(CMMI)
  19. JDBC链接数据库的步骤
  20. win7 (win 10) 新建文件夹的 快捷键

热门文章

  1. Django源码分析5:session会话中间件分析
  2. 为啥同一个程序,单步执行和debug执行出现的结果不一样呢?
  3. 爬虫正则表达式遇到的困难
  4. ACMNO.5给出一百分制成绩,要求输出成绩等级‘A’、‘B’、‘C’、‘D’、‘E’。 90分以上为A 80-89分为B 70-79分为C 60-69分为D 60分以下为E
  5. 七个算法小仙女,写出一本1200页的深度学习技术手册!(限时公开下载)
  6. SVO: 视觉SLAM中特征点法与直接法结合
  7. 链表问题7——判断一个链表是否为回文结构
  8. Java8 对Map进行排序
  9. php页面最大执行时间 set_time_limit函数不起作用
  10. CUDA FORTRAN编译器