Django Demo 入门
前言
本文档旨在从入门到入土的整理Django的学习路线,以提供于其他人进行学习。
本文档参考了Django官方技术文档进行编写。Django版本应为4.2版本。
Django 概览
因为 Django 是在快节奏的新闻编辑室环境中开发的,所以它旨在使常见的 Web 开发任务变得快速和简单。下面是关于如何使用 Django 编写数据库驱动的 Web 应用程序的非正式概述。
本文档的目的是为您提供足够的技术细节以了解 Django 的工作原理,但这并不是一个教程或参考——但我们两者都有!当您准备好开始一个项目时,您可以 从教程开始或直接进入更详细的文档。
设计你的模型¶
尽管您可以在没有数据库的情况下使用 Django,但它带有一个 对象关系映射器,您可以在其中用 Python 代码描述您的数据库布局。
数据模型语法提供了许多丰富的方式来表示您的模型——到目前为止,它已经解决了多年的数据库模式问题。这是一个简单的例子:
mysite/news/models.py¶ from django.db import models class Reporter(models.Model): full_name = models.CharField(max_length=70) def __str__(self): return self.full_name class Article(models.Model): pub_date = models.DateField() headline = models.CharField(max_length=200) content = models.TextField() reporter = models.ForeignKey(Reporter, on_delete=models.CASCADE) def __str__(self): return self.headline
安装它
接下来,运行 Django 命令行实用程序自动创建数据库表:
$ python manage.py makemigrations $ python manage.py migrate
该makemigrations命令查看所有可用模型并为尚不存在的表创建迁移。migrate 运行迁移并在数据库中创建表,并可选择提供更丰富的模式控制。
设计你的 URL
干净、优雅的 URL 方案是高质量 Web 应用程序的重要细节。Django 鼓励漂亮的 URL 设计,并且不在 URL 中放置任何垃圾,例如.php或.asp。
要为应用程序设计 URL,您可以创建一个名为URLconf的 Python 模块。您的应用程序的目录,它包含 URL 模式和 Python 回调函数之间的映射。URLconf 还用于将 URL 与 Python 代码分离。
Reporter对于上面的/示例,URLconf 可能如下所示Article :
from django.urls import path from . import views urlpatterns = [ path("articles/<int:year>/", views.year_archive), path("articles/<int:year>/<int:month>/", views.month_archive), path("articles/<int:year>/<int:month>/<int:pk>/", views.article_detail), ]
上面的代码将 URL 路径映射到 Python 回调函数(“视图”)。路径字符串使用参数标签从 URL 中“捕获”值。当用户请求页面时,Django 按顺序遍历每条路径,并在第一个与请求的 URL 匹配的路径处停止。(如果它们都不匹配,Django 会调用一个特殊情况的 404 视图。)这非常快,因为路径在加载时被编译成正则表达式。
一旦其中一个 URL 模式匹配,Django 就会调用给定的视图,这是一个 Python 函数。每个视图都会传递一个请求对象——其中包含请求元数据——以及模式中捕获的值。
例如,如果用户请求 URL“/articles/2005/05/39323/”,Django 将调用该函数。news.views.article_detail(request, year=2005, month=5, pk=39323)