Django框架(7.Django中视图,url的配置)

视图

   在Django中,通过浏览器去请求一个页面时,使用视图函数来处理这个请求的,

  视图函数处理之后,要给浏览器返回页面内容

url匹配

  • urlpatterns 是固定写法,它的值是 列表
  • 我们在浏览器中输入的路径会和 urlpatterns 中的每一项顺序进行匹配

如果匹配成功,则直接引导到相应的模块

如果匹配不成功(把urlpattersns中的每一个都匹配过了),则直接返回404

  • urlpatterns中的元素 是 url ,url的第一个参数是:正则 
r    转义
^    严格的开始
$    严格的结果
  • 我们在浏览器中输入的路由 中 哪些部分参与正则匹配?

http://ip:port/path/?key=value, 其中的//ip:port/ 和 get post 参数不参与正则匹配

  • 如果和当前的某一项匹配成,则引导到子应用中继续匹配,

如果匹配成功,则停止匹配返回相应的视图

如果匹配不成功,则继续和后边的工程中的url的每一项继续匹配,直到匹配每一项

  •  

 

视图函数的使用

1.定义视图函数

  视图函数定义在views.py

  视图的必须有一个参数,一般叫request,视图必须返回HttpResponse对象,HttpResponse中的参数内容会显示在浏览器 的页面上。

from django.shortcuts import render
from django.http import HttpResponse


# Create your views here.
# 1. 定义视图函数,返回HttpRequest对象
# 2. 进行url配置,建立url地址和视图的对应关系
def index(request):
    # 进行处理,和M和T进行交互...
    return HttpResponse("这是网页的进行响应")

 2.进行url的配置     

  ( 目的建立地址根处理函数之间对应的关系)

   一条URLconf包括url规则、视图两部分:

  • url规则使用正则表达式定义。
  • 视图就是在views.py中定义的视图函数。

需要两步完成URLconf配置:

  • 1.在应用中定义URLconf
  • 2.包含到项目的URLconf中

     ① 应用下面新建一个urls.py ,进行配置 注意列表名别写错了;

from django.conf.urls import url
from booktest import views

# 项目的urls文件
from django.urls import re_path

'''通过re_path函数设置url路由的配置项
        正则匹配的是视图函数
    如果路由里面没有正则,则用  path
    '''
urlpatterns = [
    re_path(r'^index$', views.index),  # 建立/index和视图index之间的关系
]

   ②在项目的文件夹下有urls.py 文件,进行设置路由的配置项,为urlpatterns列表增加项

from django.contrib import admin
from django.urls import path, include, re_path


# 项目的urls文件
'''通过re_path函数设置url路由的配置项
   包含booktest应用中的urls文件
   路由里面没有正则的话就用 path函数
   '''
urlpatterns = [
    path('admin/', admin.site.urls),
    re_path(r'^', include('booktest.urls'))
]

3.请求访问   

   运行程序,访问地址   127.0.0.1:8000/index, 就有视图函数返回的字符串

   

路由请求的大概过程  

  请求者在浏览器地址栏中输入url,请求到网站后,获取url信息

   然后与编写好的URLconf逐条匹配,如果匹配成功则调用对应的视图函数,

  如果所有的URLconf都没有匹配成功,则返回404错误。

 例如还有在一个应用中还有其他的视图函数

def index2(request):
    # 第二个视图函数
    return HttpResponse("这是第二个试图函数的响应")

   直接在应用的urls.py的路由配置项里面进行添加(前提是这个应用的views.py在整个项目里面已经进行了配置)

   注意:$的运用   严格匹配开头结尾, 如果不加的话,访问index2的话就会访问第一个index路由

from booktest import views

# 项目的urls文件
from django.urls import re_path

'''通过re_path函数设置url路由的配置项
        正则匹配的是视图函数
    如果路由里面没有正则,则用  path
    '''
urlpatterns = [
    re_path(r'^index$', views.index),  # 建立/index和视图index之间的关系
    re_path(r'^index2$', views.index2)
]

 还有,如果进行路由设计的时候,地址的最后面有斜杠,那么在进行路由配置的时候就要加上 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

还是那个同伟伟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值