新建app

在项目的根目录执行python manage.py startapp app名字

URL概念:

URL(Uniform Resoure Locator)统一资源定位符是对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示,是互联网上标准资源的地址。互联网上的每个文件都有一个唯一的URL,它包含的信息指出文件的位置以及浏览器应该怎么处理它

urls.py的作用:

http://127.0.0.1:8000/hello/

URL解释:

schema://host[:port#]/path/…/[?query-string][#anchor]
schema:指定使用的协议(例如:http, https, ftp)
host:Http服务器的IP地址或者域名
port:端口号,http默认是80端口
path:访问资源的路径
query-string:发送给http服务器的数据
anchor:锚点

原理

当一个请求来到的时候

  1. 首先到项目目录下的urls.py (根URLconf模块)中,查找路由规则
  2. 根URLconf模块,里面定义了 urlpatterns 变量
  3. urlpatterns 是一个(django.urls.path,django.urls.re_path 对象)列表
  4. 按顺序运行每个url模式,在第一个匹配的模式停止
  5. 一旦匹配,django导入并调用给定的视图
  6. 如果中间出错,或者没有匹配到,返回404

path的参数

path(route, view, kwargs=None, name=None)
route 是一个字符串的url规则
view 是个视图
kwargs 额外参数,传递给view,必须是一个字典
name url的命名

转换器的使用:

re_path正则匹配

re_path('^hello/$',views.test5),
re_path('^hello/(?P<yy>[0-9]+)/',views.test6),
def test5(request):return HttpResponse('这是用的re_path设置的')def test6(request,yy):print(yy,type(yy))return HttpResponse('hello %s'%yy)

代码 演练:

在student的app下的urls.py


student.view.py

ip+端口+app+url匹配模式


一个url对应一个视图函数,但我们的视图越来越多时,url也就越来越多

一个project有一个总的urls.py
各个app也可以自己建立自己的urls.py
用include()函数在project的urls.py文件进行注册

url命名

name参数可以给这个url取一个合适的名字。通过给url取名字,以后在view或者模板中使用这个URL,就只需要通过这个名字就可以了。这样做的原因是防止url的规则更改,会导致其他地方用了这个url的地方都需要更改,但是如果取名字了,就不要做任何改动了。

模板系统

模板放在哪???

在主目录下创建一个templates目录用来存放所有的html的模板文件.templates目录里面在新建各个以app名字命名的目录来存放各个app中模板文件.




render方法是django封装好用来渲染模板的方法
很方便,很好用!!!

总结

在url中捕获参数

在url规则中使用<变量名>可以捕获url中的值
传递给视图捕获的值是 字符串

路径转换器,上面案例:int:pk

常用的转换器:

str 匹配除了‘/'路径分隔符之外的所有字符串

int 匹配任意整数

slug 匹配任意ascii字符 加上连字符和下划线

uuid 格式化id

path 匹配任意非空字符

使用正则表达式 re_path(route, view, kwargs=None, name=None)

django 搜索 url 搜索的是什么?

只搜索路径部分,跟参数,以及请求方法(get,post)无关

同一个url 可以匹配 get, post

包含其他URLconfs,include

传递额外参数,path,re_path 方法中,传递一个kwargs 的字典参数

当kwargs 中的key 与 url捕获中的key 一致的时候,以kwargs为准

url 命名,页面重定向 ,跳转页面 登录之后, 某个操作之后

app_name:定义在 app文件夹下的urlconf模块中app_name = app名称

模板系统

html 源码写到模板文件中

return render(request, 'teacher/index.html')

Django的APP,视图,url和模板相关推荐

  1. Django视图层:URL的反向解析(主路由include之namespace,子路由之name,模板标签{%url%},视图reverse()函数,反向解析示例,URL命名空间

    一.视图层The view layer Django 具有 "视图" 的概念,负责处理用户的请求并返回响应. 二.URL反向解析Reverse resolution of URLs ...

  2. Django基础---Web框架、URL路由、视图函数、模板系统

    文章目录 Django基础 Django基础---Web框架 MVC和MTV框架 MVC MTV Django下载与安装 基于Django实现一个简单的示例 get请求获取数据 post请求获取数据 ...

  3. Django之路由层、视图层、模板层介绍

    一.Django请求生命周期 1.路由层urls.py Django 1.11版本 URLConf官方文档 1.1 urls.py配置基本格式 from django.conf.urls import ...

  4. Django深入研究(URL编写、视图探究)

    Django深入研究一 一.编写URL 1.URL编写规则 2.带变量的URL 3.设置参数name 4.设置额外的参数 二.探究视图 1.构建网页内容 2.数据可视化 *3.通用视图 一.编写URL ...

  5. Python的web框架Django(1):HTTP、简介、静态文件配置、路由系统、视图函数、模板语言、ORM、Ajax、分页器、forms、Cookie、Session、中间件、ModelForm

    1. HTTP协议 1)HTTP请求协议 请求格式 POST(方法) /form/entry(URI) HTTP/1.1(协议版本) HOST:hackr.jp(服务端地址) Connection:k ...

  6. django 模板mysql_59 Django基础三件套 , 模板{{}}语言 , 程序连mysql Django项目app Django中ORM的使用...

    主要内容:https://www.cnblogs.com/liwenzhou/p/8688919.html 1 form表单中提交数据的三要素 a : form标签必须要有action和method的 ...

  7. Python框架篇之Django(路由系统URL、视图函数views)

    文章目录 一.路由系统(URL) 二.视图函数(views) 一.路由系统(URL) 1.URL配置 (URLconf)就像Django 所支撑网站的目录.它的本质是URL模式以及要为该URL模式调用 ...

  8. Django 中的根ulr与APP的url关联的思考

    ##Django 中的根ulr与APP的url关联的思考 今天看Django的url模块,其中根目录的url 如何关联到具体app的url,做了一些测试,可做参考. 首先,根目录的urls.py中,去 ...

  9. Django整理(二) - 视图和模板的初步使用

    Django中的视图 · Django使用视图来编写web应用的业务逻辑 · Django的视图也就是一个函数,可称为视图函数 · 视图定义在应用的view.py文件中 · 视图需要绑定一个URL地址 ...

最新文章

  1. lda 吗 样本中心化 需要_PCA 与 LDA 分析
  2. 手动配置mysql_手动配置Mysql,无需安装的方法以及Mysql的一些基本命令
  3. 深度学习--简述卷积层如何检测物体边缘原理
  4. 经典项目|手撸一个高质量RPC框架
  5. 查询oracle数据库错误修改了,【案例】Oracle报错ora-00600[2662] 修改控制文件scn推进数据库scn...
  6. 14.mac apche
  7. java 文件递归删除文件夹_JAVA利用递归删除文件和文件夹
  8. eas bos根据合同类别过滤自定义核算项目
  9. 板载RAID、RAID卡与RAID控制器
  10. onkeyup和onafterpaste键盘输入限制
  11. 如何保障微服务架构下的数据一致性
  12. 记一次对钓鱼邮件的分析
  13. android studio秘钥库文件不存在,获得SHA1以及错误java.lang.Exception: 密钥库文件不存在: keystore...
  14. 如何将项目部署到服务器:从选择服务器到维护应用程序的全流程指南
  15. 提高numa服务器cpu性能,提升虚拟机性能 内存配置技巧之一NUMA
  16. 位置不可用 Desktop不可用
  17. DRM系统的重要基石——EME、CDM、AES、CENC和密钥
  18. EMC经典问答85问(70-74问)
  19. (六)图像背景移除/去背景/换背景/抠图/抠像代码示例:AI实时抠图、AI实时抠像、PaddlePaddle模型、虚拟现实视频会议、沉浸式会议场景、人像去背景、视频背景消除、摄像头背景移除
  20. 图扑数字孪生卡车装配生产线,工业元宇宙还远么?

热门文章

  1. html5 网页桌面图标,打开控制面板是网页,而且桌面上很多图标变成网页
  2. 【loj#2524】【bzoj5303】 [Haoi2018]反色游戏(圆方树)
  3. 正则表达式替换一位数字,并保证其后面不含有其他数字(我用来替换第一页页码)...
  4. Web服务之四:httpd虚拟主机
  5. CentOS 7下安装jdk1.8
  6. 5分钟了解TypeScript
  7. MongoDB 基础教程CURD帮助类
  8. C# 进程优先级和线程优先级的方法
  9. JS 基础事件的用法
  10. iOS自动打包并发布脚本