ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Django — URL和视图函数

2021-11-01 10:02:41  阅读:209  来源: 互联网

标签:http URL 视图 Django 2003 urls path page


URL - 结构

  • 定义 - 即统一资源定位符Uniform Resource Locator
  • 作用 - 用来表示互联网上某个资源的地址
  • URL的一般语法格式为 (注:[]代表其中的内容可省略)
    • protocol://hostname[:port]/path[?query][#fragment]
    • query一般是查询字符串。#fragment就是锚点,帮我们快速定位到当前网页的某一个标签栏
    • http://tts.tmooc.cn/video/showVideo?menuId=657421&version=AID999#subject

  • protocol(协议) http://
    • http 通过HTTP访问该资源。格式 http://
    • https 通过安全的HTTPS访问该资源。格式 https://
    • file 资源是本地计算机上的文件。格式:file:///
  • hostname (主机名) tts.tmooc.cn
    • 是指存放资源的服务器的域名系统(DNS)主机名、域名 或 IP地址
  • port (端口号) :80
    • 整数,可选,省略时使用方案的默认端口
    • 各种传输协议都有默认的端口号,如http的默认端口为80
  • path (路由地址) video/showVideo
    • 由零或多个"/"符号隔开的字符串,一般用来表示主机上的一个目录或文件地址。路由地址决定了服务器端如何处理这个请求。
  • query (查询) ?menuId=657421&version=AID999
    • 可选,用于给动态网页传递参数,可有多个参数,用"&"符号隔开。
  • fragment(信息片段) #subject
    • 字符串,用于指定网络资源中的片段。例如一个网页中有多个名词解释,可使用fragment直接定位到某一名词解释。

 

Django如何处理URL的请求

浏览器 地址栏 --> http://127.0.0.1:8000/page/2003

  1. Django从配置文件中根据ROOT_URLCONF找到 主路由文件;默认情况下,该文件在 项目同名目录下的urls;例如 Project01/Project01/urls.py
  2. Django加载 主路由文件中的urlpatterns变量[包含很多路由的数组]
  3. 依次匹配 urlpatterns中的path,匹配到第一个合适的,中断后续匹配
  4. 匹配成功 - 调用对应的视图函数处理请求,返回响应
  5. 匹配失败 - 返回404响应

主路由 - urls.py

from django.urls import path
from . import views
urlpatterns = [
    path('admin/',admin.site.urls)
    # http://127.0.0.1:8000/page/2003/
    path('page/2003/',views.page_2003_view),
]

 

视图函数

  • 视图函数是用于接收一个浏览器请求(HttpRequest对象)并通过HttpRespon象返回响应的函数。此函数可以接收浏览器请求并根据业务逻辑返回相应的响应内容给浏览器。
  • 语法
def xxx_view(request[,其他参数...]):
    return HttpResponse对象

样例

# file: <项目同名文件夹下>/views.py
# 一般视图文件就写在上述views.py中。视图名字随意,此处为page1_view
from django.http import HttpResponse
def page1_view(request):
    html = '<h1>这是第一个页面</h1>'
    return HttpResponse(html)

 

由于此处与02节创建方式不同,此处按照这节的内容重新创建

首先,随便打开一个项目,然后在pycharm界面的左下角有Terminal终端的图标,点开。

cd返回根目录: cd D:\python_study 或者 cd..

进入目录后,输入: django-admin startproject Project02  回车 创建项目

 

 

然后file->open->打开目录下的Project02文件

对Project02进行配置

输入 python manage.py runserver 启动服务

当前目录结构为

 

 

在Project02中新建文件views.py

# 在urls.py文件中

from django.contrib import admin
from django.urls import path
# 将视图函数与路由绑定,即把视图函数放到path的第二个参数位置上,传进去即可。
from . import views

urlpatterns = [
    path('admin/', admin.site.urls),
    # http://127.0.0.1:8000/page/2003/
    path('page/2003/',views.page_2003_view),
    # page_2003_view不要加(),不然引入的就是它的结果,而不是这个函数
]
# 在views.py文件中

from django.http import HttpResponse

# page_2003_view是视图名,与urls.py的path的第二个参数对应
def page_2003_view(request):
    html = '<h1>这是第一个页面</h1>'
    return HttpResponse(html)

 

标签:http,URL,视图,Django,2003,urls,path,page
来源: https://www.cnblogs.com/minygirl/p/15492178.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有