零基础入门学django框架,超详细基础知识(一)

本文介绍了Django的基础知识,包括如何创建项目、理解Django程序目录结构、URL和视图函数的工作原理。Django通过配置文件中的URL路由系统来处理请求,匹配到相应的视图函数进行处理。视图函数负责接收HttpRequest并返回HttpResponse。路由配置中,path函数和转换器允许灵活地定义URL模式。
摘要由CSDN通过智能技术生成

Django基础知识(一)

创建django项目

terminal命令:

	#创建Django程序
	django-admin startproject mysite
	#进入程序目录
	cd mysite
	#启动socket服务端,等待用户发送请求
	python manage.py runserver 8000

Django程序目录:

mysite
	mysite
		-settings.py  #Django配置文件
		-url.py       #路由系统:url->函数
		-wsgi.py      #用于定义Django用socket,wsqiref,uwsgi
	manage.py         #对当前Django程序所有操作可以基于python manage.py runserver

URL和视图函数

URL
  1. 定义:统一资源定位符Uniform Resource Locator

  2. 语法:(注:[]代表其中内容可省略]

    protocol://hostname[:port]/path[?query]][#fragment]

    e.g.http://tts/tmooc.cn/video/showViedo?menuld=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/showViedo

      • 由零或多个"/"符号隔开的字符串,一般用来表示主机上的一个目录或文件地址。
      • 路由地址决定了服务器端如何处理这个请求
    • query(查询)?menuld=657421&version=AID999

      • 可选,用于给动态网络传递参数,可有多个参数,用”&“符号隔开,每个参数的名和值用’=‘符号隔开的字符串,一般用来表示主机上的一个目录或文件地址
      • 路由地址决定了服务器端如何处理这个请求
    • fragment(信息片段)#subject

      • 字符串,用于指定网络资源中的片段。如一个网页中有多个名词解释,可使用
      • fragment直接定位到某一名词解释。
  3. django如何处理URL请求
    e.g.浏览器 地址栏 - > http://127.0.0.1:8000/page/2003/

    • Django从配置文件中根据Root URLCONF找到主路由文件;默认情况下,该文件在项目
    • 同名目录下的urls;例如mysite1/mysite1/urls.py
    • Django加载主路由文件中的urlpatterns变量[包含很多路由的数组]
    • 依次匹配urlpatterns中的path,匹配到第一个合适的中断后续匹配
      • 匹配成功-调用对应的视图函数处理请求,返回响应
      • 匹配失败-返回404响应
视图函数:
  • 定义:视图函数是用于接收一个浏览器请求(HttpRequest对象)并通过HttpResponse对象返回响应的函数。此函数可以接收浏览器请求并根据业务逻辑返回相应的响应内容给浏览器

  • 语法:

    def xxx_view(request[,其它参数...]):
    	return HttpResponse对象;
    

路由配置

path函数:
  1. 导入:from django.urls import path

  2. 语法:path(route,views,name=None)

  3. 参数:

    • route:字符串类型,匹配的请求路径
    • views:指定路径所对应的视图处理函数的名称
    • name:为地址起别名,在模块中地址反向解析时使用
path转换器:
  1. 语法:<转换器类型:自定义名>

  2. 作用:若转换器类型匹配到对应类型的数据,则将数据按照关键字传参的方式传递给视图函数
    path('page/<int:page>',views.xxx)

  3. 转换器类型:

    • str:匹配除了’/'之外的非空字符串
    • int:匹配0或者任何正整数,返回一个int
    • slug:匹配任意由ASCII字母或数字以及连字符和下划线组成的短标签(e.g. this-is-jango)
    • path:匹配非空字段,包括路径分隔符‘/’
  4. re_path()函数:

    • 作用:在url的匹配过程中可以使用正则表达式进行精确匹配

    • 语法:re_path(reg,view,name=xxx)
      正则表达式为命名分组模式(?<name>pattern);匹配提取参数后用关键字传参方式传递给视图函数

      re_path(r'^(?P<x>\d{1,2})/(?P<op>\w+)/(?P<y>\d{1,2})$',views.cal2_view)

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值