Django 快速上手
根据您对 Django 的熟悉程度,您可以尝试教程,或者直接深入文档。
想了解更多关于 Django 的信息?阅读概述,看看 Django 是否适合您的项目。
Django 概述编写您的第一个 Django 应用
已经安装了 Django?很好。现在尝试本教程,它将引导您创建一个基本的投票应用程序。它分为两部分:
- 一个公共网站,允许人们查看投票并参与投票。
- 一个管理界面,允许您添加、更改和删除投票。
Django 简介
-
对象关系映射器 (ORM)
完全在 Python 中定义您的数据模型。您可以免费获得丰富的动态数据库访问 API——但如果需要,您仍然可以编写 SQL。
了解更多from django.db import models class Band(models.Model): """A model of a rock band.""" name = models.CharField(max_length=200) can_rock = models.BooleanField(default=True) class Member(models.Model): """A model of a rock band member.""" name = models.CharField("Member's name", max_length=200) instrument = models.CharField( choices=( ("g", "Guitar"), ("b", "Bass"), ("d", "Drums"), ), max_length=1, ) band = models.ForeignKey("Band")
-
{% translate "URL 和视图" %}
简洁优雅的 URL 方案是高质量 Web 应用程序的重要细节。Django 鼓励设计优美的 URL,并且不会在 URL 中添加任何冗余内容,例如 .php 或 .asp。
要为应用程序设计 URL,您可以创建一个名为 URLconf 的 Python 模块。它就像您应用程序的目录,包含 URL 模式和视图之间的简单映射。
了解更多from django.urls import path from . import views urlpatterns = [ path("bands/", views.band_listing, name="band-list"), path("bands/<int:band_id>/", views.band_detail, name="band-detail"), path("bands/search/", views.band_search, name="band-search"), ]
from bands.models import Band from django.shortcuts import render def band_listing(request): """A view of all bands.""" bands = Band.objects.all() return render(request, "bands/band_listing.html", {"bands": bands})
-
模板
Django 的模板语言旨在平衡功能和易用性。对于习惯使用 HTML 的人,例如设计师和前端开发人员,它设计得舒适易学。但它也灵活且高度可扩展,允许开发人员根据需要扩展模板语言。
了解更多<html> <head> <title>{% translate "Band Listing" %}</title> </head> <body> <h1>{% translate "All Bands" %}</h1> <ul> {% for band in bands %} <li> <h2><a href="{{ band.get_absolute_url }}">{{ band.name }}</a></h2> {% if band.can_rock %}<p>{% translate "This band can rock!" %}</p>{% endif %} </li> {% endfor %} </ul> </body> </html>
-
表单
Django 提供了一个强大的表单库,它处理将表单渲染为 HTML、验证用户提交的数据以及将这些数据转换为原生 Python 类型。Django 还提供了一种方法,可以根据您现有的模型生成表单,并使用这些表单创建和更新数据。
了解更多from django import forms class BandContactForm(forms.Form): subject = forms.CharField(max_length=100) message = forms.TextField() sender = forms.EmailField() cc_myself = forms.BooleanField(required=False)
-
身份验证
Django 附带了一个功能齐全且安全的身份验证系统。它处理用户帐户、组、权限和基于 Cookie 的用户会话。这使您可以轻松构建允许用户创建帐户并安全地登录/注销的网站。
了解更多from django.contrib.auth.decorators import login_required from django.shortcuts import render @login_required def my_protected_view(request): """A view that can only be accessed by logged-in users""" return render(request, "protected.html", {"current_user": request.user})
-
管理员
Django 最强大的部分之一是其自动管理员界面。它读取模型中的元数据,以提供一个强大且可用于生产的界面,内容制作人员可以使用它立即开始管理您网站上的内容。它易于设置,并提供许多自定义挂钩。
了解更多from bands.models import Band, Member from django.contrib import admin class MemberAdmin(admin.ModelAdmin): """Customize the look of the auto-generated admin for the Member model""" list_display = ("name", "instrument") list_filter = ("band",) admin.site.register(Band) # Use the default options admin.site.register(Member, MemberAdmin) # Use the customized options
-
国际化
Django 提供了对将文本翻译成不同语言的完全支持,以及日期、时间、数字和时区的特定于区域设置的格式。它允许开发人员和模板作者指定其应用程序的哪些部分应该被翻译或为本地语言和文化格式化,并且它使用这些挂钩根据用户的偏好为特定用户本地化 Web 应用程序。
了解更多from django.shortcuts import render from django.utils.translation import gettext def homepage(request): """ Shows the homepage with a welcome message that is translated in the user's language. """ message = gettext("Welcome to our site!") return render(request, "homepage.html", {"message": message})
{% load i18n %} <html> <head> <title>{% translate "Homepage - Hall of Fame" %}</title> </head> <body> {# Translated in the view: #} <h1>{{ message }}</h1> <p> {% blocktranslate count member_count=bands.count %} Here is the only band in the hall of fame: {% plural %} Here are all the {{ member_count }} bands in the hall of fame: {% endblocktranslate %} </p> <ul> {% for band in bands %} <li> <h2><a href="{{ band.get_absolute_url }}">{{ band.name }}</a></h2> {% if band.can_rock %}<p>{% translate 'This band can rock!' %}</p>{% endif %} </li> {% endfor %} </ul> </body> </html>
-
安全