- 1、本文档共155页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
第16章Django核心组件详解;学习目标/Target;学习目标/Target;学习目标/Target;章节概述/Summary;目录/Contents;路由系统;;;;;;URL模式配置有着一定的格式要求。下面看一下mysite项目中应用hello的URL模式,具体代码如下所示:;path()函数定义在django.urls模块中,它的语法格式如下:;;;;;;;自定义路由转换器定义完成之后,需要通过urls模块中的register_converter()函数将其注册到Django的路由系统。register_converter函数的格式如下:;(1)创建名称为chapter16的Django项目,在该项目中创建应用app01,并在项目的配置文件中激活app01应用,具体代码如下加粗部分所示:;(2)在chapter16项目的urls.py文件中配置根路由,具体代码如下加粗部分所示:;(3)在应用app01中新建converter.py文件,在该文件中定义一个表示自定义路由转换器的类MyConverter,并通过register_converter()函数将自定义路由转换器注册到路由系统中。定义与注册自定义路由转换器的代码如下所示:;(4)路由转换器定义好之后,在app01应用中新建子路由文件urls.py,在该文件中导入路由转换器所在的文件,即导入converter模块,然后配置子路由,使用自定义的路由转换器匹配mobile/后面的手机号码,具体代码如下所示:;(5)在app01应用的views.py文件中,增加定义视图函数show_mobile()的代码,该函数的作用是将手机号码呈现在页面中,具体代码如下所示:;(6)运行开发服务器启动chapter16项目,在浏览器中访问:8000/app01/mobile,页面效果如图所示。;;;使用include()实现路由分发有两种方式,分别是引入应用URLconf和引入URL模式列表,关于它们的介绍如下。;在chapter16项目中创建及激活app02应用,在项目的根URLconf中使用include()函数引入app02应用的URLconf,具体代码如下加粗部分所示:;在app02应用中创建urls.py文件,在该文件中定义与应用相关的URL模式,具体代码如下:;为了验证以上方式是否成功实现路由分发,这里可以在app02应用的views.py文件中增加定义视图函数的代码,具体代码如下所示。;除了引入应用URLconf外,还可以给include()函数传入包含URL模式的列表,通过引入URL模式列表的方式实现路由分发的功能。这种形式不需要在应用中自行创建urls.py???只需在项目的urls.py文件中使用include()函数添加额外的URL模式列表即可。引入URL模式列表的语法格式如下所示。;在chapter16项目的urls.py文件中添加URL模式列表,之后使用include()函数引入URL模式列表,具体代码如下加粗部分所示:;;;;;;;Django提供了urls模块中的reverse()函数来实现反向解析。通过反向解析,Django服务器会根据视图函数或路由规则的命名来动态生成URL,直到实际访问时服务器才会获取具体的URL。;在app02应用的urls.py文件中定义URL模式,具体代码如下:;在浏览器访问:8000/app02/url-reverse/后,页面效果如图所示。;模型;;;16.2.1模型简介;;16.2.1模型简介;16.2.1模型简介;16.2.1模型简介;16.2.1模型简介;16.2.1模型简介;16.2.1模型简介;;;;;;在定义一对多关系时,需要将ForeignKey字段定义在处于“多”的一端的模型类中。以国家和城市为例,一个国家包含多个城市,国家和城市之间具有一对多关系,ForeginKey应该定义在表示城市的模型类中。示例如下:;16.2.2模型的字段;以国家和总统为例,一个国家只能有一个总统,一个总统也只能属于一个国家,将OneToOneField定义在表示总统的模型类中,示例如下:;16.2.2模型的字段;以教师和学生为例,多位教师可以对应多名学生,定义具有多对多关系的教师表和学生表,示例如下:;16.2.2模型的字段;;;;;;;;16.2.3数据的增删改查;16.2.3数据的增删改查;16.2.3数据的增删改查;16.2.3数据的增删改查;16.2.3数据的增删改查;16.2.3数据的增删改查;16.2.3数据的增删改查;16.2.3数据的增删改查;模板;;;;若要在Django项目中使用模板,需要在
您可能关注的文档
- Python程序开发案例教程(第2版)课件 第4章 列表与元组.pptx
- Python程序开发案例教程(第2版)课件 第1章 开启Python学习之旅.pptx
- Python程序开发案例教程(第2版)课件 第2章 数字类型与字符串.pptx
- Python程序开发案例教程(第2版)课件 第3章 流程控制.pptx
- Python程序开发案例教程(第2版)课件 第5章 字典和集合.pptx
- Python程序开发案例教程(第2版)课件 第6章 函数.pptx
- Python程序开发案例教程(第2版)课件 第7章 类与面向对象.pptx
- Python程序开发案例教程(第2版)课件 第8章 模块.pptx
- Python程序开发案例教程(第2版)课件 第9章 文件与文件路径操作.pptx
- Python程序开发案例教程(第2版)课件 第10章 错误和异常.pptx
文档评论(0)