Django中URL和View的关系

本文探讨了Django中URL和View的关系。当用户发起HttpRequest时,Django通过URL_pattern匹配请求并调用相应的View。View负责响应请求,返回包括HTML页面在内的各种response。大部分项目代码集中在View中,可以通过引用模板来简化代码。要引入HTML文件,需在settings.py中配置templates的DIRS,并在view.py中定义视图函数。URL配置在urls.py文件中,使用path()函数指定视图和URL路径。在模板中,可以使用name属性引用URL。Django还提供了处理404错误的内置机制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

URL和View的关系

  1. 每次用户发来一个HttpRequest请求,Django会用URL_pattern与请求进行匹配,匹配到第一个URL_pattern就会把请求转向对应的view

  2. view用来响应request,并返回response,response里可以包含网页文件呀,图片等等。所以项目中绝大部分代码均在此编写。

    view 可以引入通用模板来减少代码量,具体查看文档

    Use generic views

  3. view引入HTML文件的方法:

    • 在一个app下建立一个templates文件夹,将html文件放进去该文件夹

      这里其实不一定要把HTML文件放在这个templates里,可以随意定义

      不过,需要在setting.py里,找到templates,

      修改DIRS:[ os.path.join (BASE_DIR,'你定义的html存放的文件夹')]

    • 在app下 view.py 文件,在里面写好view函数

      def 函数名(request):
          return render(request,'index.html')

render(渲染)需要三个变量, 第一个变量是request请求,第二个是模版所在目录,第三个是一个字典(可选),字典用于对应模板里设计的变量,可以用locals()将函数里设计的变量自动转换为字典

  1. 在对于app下创建一个urls.py ,写入如下内容

    from django.urls import path
    
    from . import views
    
    urlpatterns = [  
    
        path('', views.index, name='index'),
    
    ]
    
  2. 在项目文件夹里找到 urls.py 加入如下内容

from django.urls import include, path

urlpatterns = [
    path('polls/', include('polls.urls')),
    path('admin/', admin.site.urls),
]


对于<a>标签里的 href 可以用 {% url 'url名' %}来代替,url名指的是 urls.py 里的path('login.html/', views.my_login, name='url名'),


Django 中通常使用 get_object_or_404()来捕捉 404 错误,而不用自己写 try...except

def detail(request, question_id):
    question = get_object_or_404(Question, pk=question_id)
    return render(request, 'polls/detail.html', {'question': question})

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值