Django 教程:从入门到精通

介绍

如果你是一名有志于成为优秀开发者的初学者,那么你一定会听说过 Django。Django 是一个开源的 Python web 框架,它的简洁、高效、安全和可扩展性让它成为了众多开发者的心头好。

如果你还没有接触过 Django,那么这篇文章就是为你准备的。本文将从 Django 的基础知识入手,逐步深入,让你从入门到精通 Django。

Django 的基础概念

在开始学习 Django 之前,你需要了解一些基础概念。首先,Django 是一个 MVC 框架,也就是模型-视图-控制器框架。模型是数据的表示,视图是用户界面的表示,控制器是处理用户交互的逻辑。

除了 MVC 模式,Django 还有一个重要的概念是 URL 映射。URL 映射是将 URL 地址映射到相应的视图函数的过程。这个过程通过 Django 的 URLconf 文件来完成。

Django 的安装

在开始 Django 的学习之前,你需要先安装 Django。你可以通过以下命令来安装 Django:

pip install Django

安装完成后,你可以通过以下命令来验证 Django 是否安装成功:

python -m django --version

如果你看到了 Django 的版本号,那么恭喜你,你已经成功安装了 Django。

Django 的第一个应用

在安装好 Django 后,我们可以来创建一个简单的 Django 应用。首先,我们需要通过以下命令来创建一个 Django 项目:

django-admin startproject mysite

这个命令会创建一个名为 mysite 的文件夹,其中包含了一个名为 manage.py 的文件和一个名为 mysite 的文件夹。

接下来,我们需要通过以下命令来创建一个名为 polls 的应用:

python manage.py startapp polls

这个命令会在 mysite 文件夹下创建一个名为 polls 的文件夹,其中包含了一个名为 views.py 的文件,这个文件是我们编写视图函数的地方。

接下来,我们需要在 polls/views.py 文件中编写一个简单的视图函数:

from django.http import HttpResponse

def index(request):
    return HttpResponse("Hello, world. You're at the polls index.")

这个视图函数会返回一个字符串 "Hello, world. You're at the polls index."。接下来,我们需要在 polls 文件夹下创建一个名为 urls.py 的文件,来配置 URL 映射:

from django.urls import path

from . import views

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

这个文件中的 urlpatterns 列表定义了 URL 映射规则。上面的代码表示,如果用户访问网站的根目录,那么就会调用 index 函数。

最后,我们需要在 mysite 文件夹下的 urls.py 文件中包含 polls 应用的 URLconf:

from django.contrib import admin
from django.urls import include, path

urlpatterns = [
    path('polls/', include('polls.urls')),
    path('admin/', admin.site.urls),
]

这个文件中的 urlpatterns 列表定义了网站的 URL 映射规则。上面的代码表示,如果用户访问 /polls/,那么就会调用 polls 应用的 URLconf。

现在,我们就可以通过以下命令来启动 Django 开发服务器了:

python manage.py runserver

如果一切正常,你现在就可以在浏览器中访问 http://localhost:8000/polls/,看到 "Hello, world. You're at the polls index." 这个字符串了。

Django 的模板系统

在上面的例子中,我们直接在视图函数中返回了一个字符串。但是,在实际开发中,我们通常会使用模板系统来渲染 HTML 页面。Django 的模板系统是一个强大而灵活的工具,它可以帮助我们快速构建出美观的网站。

首先,我们需要在 polls 应用下创建一个名为 templates 的文件夹。在这个文件夹下,我们可以创建一个名为 index.html 的文件,来作为 polls 应用的主页模板:

<!DOCTYPE html>
<html>
<head>
    <title>Polls</title>
</head>
<body>
    <h1>Polls</h1>
    <ul>
    {% for question in latest_question_list %}
        <li><a href="/polls/{{ question.id }}/">{{ question.question_text }}</a></li>
    {% endfor %}
    </ul>
</body>
</html>

这个模板中使用了 Django 的模板语言。{% %} 表示代码块,{{ }} 表示变量。在这个模板中,我们使用了一个 for 循环来遍历 latest_question_list 变量,并将其中的每个元素渲染成一个 HTML 列表项。

接下来,我们需要在 polls/views.py 文件中修改 index 函数,让它使用新的模板系统来渲染页面:

from django.shortcuts import render
from .models import Question

def index(request):
    latest_question_list = Question.objects.order_by('-pub_date')[:5]
    context = {'latest_question_list': latest_question_list}
    return render(request, 'polls/index.html', context)

在这个代码中,我们使用了 render 函数来渲染模板。这个函数接受三个参数:请求对象、模板名称和上下文。在上面的代码中,我们将 latest_question_list 变量添加到了上下文中,以便在模板中使用。

现在,我们就可以在浏览器中访问 http://localhost:8000/polls/,看到 polls 应用的主页了。

Django 的表单处理

在实际开发中,我们通常需要让用户填写表单,并将表单数据保存到数据库中。Django 提供了强大的表单处理功能,可以帮助我们轻松地实现这个功能。

首先,我们需要在 polls 应用下创建一个名为 forms.py 的文件,用来定义表单。在这个文件中,我们可以定义一个名为 VoteForm 的表单:

from django import forms

class VoteForm(forms.Form):
    choice = forms.IntegerField() 

在上面的代码中,我们定义了一个名为 choice 的整数字段。这个字段将用来存储用户选择的选项 ID。

接下来,我们需要在 polls/views.py 文件中编写一个新的视图函数,用来处理表单提交:

from django.shortcuts import get_object_or_404, render
from django.http import HttpResponseRedirect
from django.urls import reverse

from .models import Choice, Question
from .forms import

本文来源:词雅网

本文地址:https://www.ciyawang.com/qdvam8.html

本文使用「 署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0) 」许可协议授权,转载或使用请署名并注明出处。

相关推荐