Django入门2


一、Django的URL路由配置

1.介绍

• 一个干净优雅的URL方案是高质量Web应用程序中的一个重要细节。
• Django可以让你自己设计URL,无论你想要什么,没有框架限制。
• 要为应用程序设计URL,您可以非正式地创建一个名为URLconf(URL配置)的
Python模块。
• 这个模块是纯Python代码,是一个简单的Python模式(简单的正则表达式)到Python
函数(视图)之间的映射。

2.处理请求

  1. 首先Django要使用根URLconf模块,通过setting.py配置文件的ROOT_URLCONF来设置。
  2. 加载该模块后并查找变量 urlpatterns。这是一个Python的django.conf.urls.url()实例列表。
  3. Django按顺序运行每个URL模式,并在匹配所请求的URL的第一个URL中停止。
  4. 一旦正则表达式匹配,Django将导入并调用给定的视图,这是一个简单的Python函数(或基
    于类的视图)。该视图会传递以下参数:
    一个实例HttpRequest。
    如果匹配的正则表达式没有返回任何命名组,那么来自正则表达式的匹配将作为位置参数提供。
    关键字参数由正则表达式匹配的任何命名组组成,由可选kwargs参数中指定的任何参数覆盖 django.conf.urls.url()。
  5. 如果没有正则表达式匹配,或者在此过程中的任何一点出现异常,Django将调用适当的错误处理视图。

3.URL的命名组

• 在URL配置中要传递参数,一般使用正则表达式非命名组(通过括号)捕获URL定位,并将它们作为位置参数传递给视图。
• 在更高级的使用中,我们可以使用正则表达式命名组来捕获URL定位,并将它们作为关键字参数传递给视图。
• 在Python正则表达式中,正则表达式命名组的语法是(?P<name>pattern),其中命名组中
的命名就是name,并且 pattern是某些匹配的模式。

4.错误处理

• 当Django找不到与请求的URL匹配的正则表达式时,或者异常引发时,Django将调用错误处理视图。
• 关于404错误
. 404的错误页面,在模板目录中创建一个404.html的页面,
. 在配置文件中 settings.py DEBUG=False
. 在出现404的情况时,自动寻找404页面。
. 也可以在视图函数中手动报出404错误,带提醒信息
其他的URLconf
• 在任何时候,您urlpatterns都可以“包含”其他URLconf模块。

from django.urls import include, path urlpatterns = [
# ... snip ...
path('community/', include('django_website.aggregator.urls')), path('contact/', include('django_website.contact.urls')),
# ... snip ... ]

• 请注意,此示例中的正则表达式没有**$(字符串尾匹配字符),但包含尾部斜线**。

5.URL的反向解析

如果在视图、模板中使用硬编码的链接,在urlconf发生改变时,维护是一件非常麻烦的事情。

解决:在做链接时,通过指向urlconf的名称,动态生成链接地址
视图:使用django.core.urlresolvers.reverse()函数
模板:使用url模板标签

二、Django的模型层

1.Model的开发流程

  1. 在应用的models.py中定义模型类,要求继承自models.Model
  2. 把应用加入到项目settings.py配置文件的INSTALLED_APPS项中
  3. 生成迁移文件
    python manage.py makemigrations
  4. 执行迁移
    python manage.py migrate
  5. 使用模型类进行CRUD操作

2.定义Model

• 在模型中定义属性,会生成表中的字段
• Django根据属性的类型确定以下信息:
. 当前选择的数据库支持字段的类型
. 渲染管理表单时使用的默认html控件
. 在管理站点最低限度的验证
• Django会为表增加自动增长的主键列,每个模型只能有一个主键列。
• 属性命名限制
. 不能是Python的保留关键字
. 由于Django的查询方式,不允许使用连续的下划线

3.Model模型的实例

• 模型实例对象是通过objects属性获取,即Django为模型类提供的管理器。

objects:是Manager类型的对象,用于与数据库进行交互

• 实例的方法

__str__(self):重写object方法,此方法在将对象转换成字符串时会被调用 save( ):将模型对象保存到数据表中
delete( ):将模型对象从数据表中删除

4.模型的查询

• 查询集表示从数据库中获取的对象集合
• 查询集可以含有零个、一个或多个过滤器
• 过滤器基于所给的参数限制查询的结果
• 从Sql的角度,查询集和select语句等价,过滤器像where和limit子句

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值