Django的路由、视图、模板、ORM

Django是一个用Python编写的高级Web框架,它鼓励快速开发和干净、实用的设计。Django遵循MVC(Model-View-Controller)架构模式,但Django团队更喜欢将其称为MVT(Model-View-Template),其中Model代表数据存取层,View代表业务逻辑层,Template代表表现层。下面分别介绍Django的路由、视图、模板和ORM。

1. 路由(URLconf)

Django的路由系统负责将URL路径映射到相应的视图函数或视图类上。路由定义在项目的urls.py文件中,Django通过匹配请求的URL来调用相应的视图。

路由定义规则

  • 每个urls.py文件必须包含一个名为urlpatterns的列表,用于定义路由信息。
  • 路由通常使用path()re_path()函数来定义。path()用于普通路径,而re_path()(在Django 2.0之前称为url())用于正则路径。
  • 路由函数可以设置三个参数:路由地址(route)、视图函数或视图类(views)、以及路由名称(name,可选)。

示例

 

python复制代码

from django.urls import path
from . import views
urlpatterns = [
path('admin/', admin.site.urls),
path('index/', views.index, name='index'),
]

2. 视图(Views)

视图是Django中处理请求并返回响应的函数或类。视图接收一个HttpRequest对象作为输入,并返回一个HttpResponse对象作为输出。

视图函数

  • 视图函数是一个Python函数,它接收HttpRequest对象作为参数,并返回一个HttpResponse对象。
  • 视图函数通常定义在应用的views.py文件中。

视图类

  • 视图类是一个继承自Django的View类的Python类。
  • 视图类通过定义不同的方法来处理不同类型的HTTP请求(如GET、POST等)。

示例

 

python复制代码

from django.http import HttpResponse
def index(request):
return HttpResponse("Hello, world. You're at the index.")
from django.views import View
from django.http import HttpResponse
class IndexView(View):
def get(self, request):
return HttpResponse("Hello, world. You're at the index via class-based view.")

3. 模板(Templates)

Django的模板系统允许开发者以简洁的方式定义HTML页面的内容。模板的设计实现了视图与表现的解耦,使得开发者可以轻松地修改页面的外观而不必改动业务逻辑。

模板语言

  • Django模板语言(DTL)允许在HTML中嵌入变量和逻辑控制结构。
  • 模板中的变量使用双大括号{{ }}包裹,而逻辑控制结构(如循环、条件判断)则使用{% %}包裹。

模板继承与包含

  • Django模板支持继承,允许你构建一个基本的“骨架”模板,它包含站点共有的元素,并可以定义能够被子模板覆盖的blocks。
  • 模板包含允许你在一个模板中插入另一个模板的内容。

4. ORM(对象关系映射)

Django的ORM提供了一种高级的方式来操作数据库。它允许开发者使用Python代码来定义模型(Model),这些模型映射到数据库中的表。通过ORM,开发者可以无需编写SQL语句就能执行数据库的增删改查操作。

模型定义

  • 在Django中,模型通常定义在应用的models.py文件中。
  • 每个模型都继承自django.db.models.Model类。
  • 模型的字段通过定义类属性来指定,如CharFieldIntegerField等。

示例

 

python复制代码

from django.db import models
class Person(models.Model):
name = models.CharField(max_length=100)
age = models.IntegerField()

查询

  • Django的ORM提供了丰富的API来执行数据库查询,如filter()exclude()get()等。
  • 这些API允许开发者以Pythonic的方式构建复杂的查询条件。

通过以上介绍,可以看出Django的路由、视图、模板和ORM共同构成了Django框架的核心,使得开发者能够高效地开发Web应用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值