📜  Django 教程(1)

📅  最后修改于: 2023-12-03 15:30:30.412000             🧑  作者: Mango

Django 教程

Django 是一个流行的 Python Web 应用开发框架,它可以让开发者更加专注于业务逻辑,而不需要关心 Web 开发中的一些琐碎的细节,比如 URL 处理、HTTP 请求处理等。

在本教程中,我们将介绍 Django 的主要特性和如何使用 Django 构建 Web 应用。

Django 的主要特性

以下是 Django 的一些重要特性:

  • 自带 ORM:Django 自带 ORM(对象关系映射),可以让开发者更加方便地操作数据库。
  • 强大的路由系统:Django 的 URL 路由系统可以轻松地设置 URL 和视图之间的映射关系。
  • 简单明了的模板引擎:Django 的模板引擎使用简单明了的语法,可以让开发者更加易于编写 HTML 模板。
  • 自带管理后台:Django 自带管理后台,可以让开发者快速构建一个管理 Web 应用。
  • 丰富的插件:Django 拥有丰富的插件,可以帮助开发者快速实现 Web 应用的一些功能,比如认证、缓存、邮件等。
Django 的安装

使用 Django 开发 Web 应用需要先安装 Django,可以使用以下命令安装最新版本的 Django:

pip install django
Django 的项目和应用

Django 应用是由一个或多个 Django 项目组成的。Django 项目是一个完整的 Web 应用程序,包含配置、URL 映射和一个或多个应用程序。每个应用程序都负责处理特定的业务逻辑。

使用以下命令可以创建一个新的 Django 项目:

django-admin startproject project-name

使用以下命令可以创建一个新的 Django 应用程序:

python manage.py startapp app-name
Django 的路由

Django 的 URL 路由系统使用正则表达式来确定 URL 和视图之间的映射关系。在 Django 中,URL 模式是由一个或多个 URL 规则组成的。每个 URL 规则可以映射到相应的视图。

以下是一个简单的 URL 规则示例:

from django.urls import path
from . import views

urlpatterns = [
    path('hello/', views.hello, name='hello'),
]

在这个例子中,当用户访问 /hello/ 时,将调用名为 hello 的视图函数。

Django 的模板

Django 的模板引擎使用简单明了的语法,可以让开发者更加易于编写 HTML 模板。Django 的模板引擎支持变量、标签和过滤器等。

以下是一个简单的模板示例:

{% extends "base.html" %}

{% block content %}
<h1>{{ title }}</h1>
<ul>
{% for item in items %}
    <li>{{ item }}</li>
{% endfor %}
</ul>
{% endblock %}

在这个例子中,我们使用 for 标签来循环遍历 items 列表,并使用 {{ }} 语法来输出变量的值。

Django 的视图

在 Django 中,视图是处理 HTTP 请求并生成 HTTP 响应的函数或方法。一个视图函数通常会从数据库中获取数据,并使用模板生成 HTML 页面或者其他格式的响应数据。

以下是一个简单的视图示例:

from django.shortcuts import render

def hello(request):
    context = {'message': 'Hello, Django!'}
    return render(request, 'hello.html', context)

在这个例子中,我们使用 render 函数来渲染一个名为 hello.html 的模板,并将变量 message 传递给模板。

Django 的 ORM

Django 的 ORM(对象关系映射)可以让开发者更加方便地操作数据库。使用 ORM,可以将数据库表映射成 Python 对象,使用 Python 对象来进行 CRUD(增删改查)操作。

以下是一个简单的 ORM 示例:

from django.db import models

class Book(models.Model):
    title = models.CharField(max_length=100)
    author = models.CharField(max_length=100)
    published_date = models.DateTimeField()

    def __str__(self):
        return self.title

在这个例子中,我们定义了一个名为 Book 的模型,该模型有三个字段:titleauthorpublished_date。使用该模型,可以方便地进行对数据库的操作,如新增、查询、更新、删除等。

Django 的管理后台

Django 的管理后台可以让开发者快速构建一个管理 Web 应用。开发者只需要创建模型和相关的 admin 类,Django 就会自动创建一个属于该模型的管理后台。

以下是一个简单的管理后台示例:

from django.contrib import admin
from .models import Book

class BookAdmin(admin.ModelAdmin):
    list_display = ('title', 'author', 'published_date')

admin.site.register(Book, BookAdmin)

在这个例子中,我们创建了一个名为 BookAdmin 的 admin 类,并将其注册到 Book 模型上,该类定义了需要在管理后台中显示的字段。

结语

本教程只是对 Django 的主要特性做了简单介绍,Django 还有很多其他的特性需要深入探究。如果您想深入学习 Django,可以阅读官方文档或查阅其他 Django 相关资源。