悠闲博客-blog.yxrjt.cn

python学习WEB框架Django 基础教程:全面详细讲解

更新时间:2025-11-23 15:25点击:105

【2023】Django 4教程 第1篇 基础知识 第2章 掌握必要的基础知识 2.2 Python语言入门 2.2.1 Python语言简介 ...

Django 是一个开放源代码的高层次 Python Web 框架,旨在通过快速开发、简洁设计和不重复造轮子的理念帮助开发者构建强大而实用的 Web 应用程序。本文将全面详细地介绍 Django 的基础知识,并通过具体示例演示如何使用 Django 开发 Web 应用。

1. 安装与环境配置

1.1 安装 Django

在开始 Django 项目之前,需要确保你已经安装了 Python 和 pip。你可以通过以下命令安装 Django:

pip install django

你可以使用以下命令来验证 Django 是否安装成功:

python -m django --version
1.2 创建 Django 项目

安装完成后,可以使用以下命令创建一个新的 Django 项目:

django-admin startproject myproject

此命令将在当前目录下创建一个名为 myproject 的目录,包含 Django 项目所需的基本结构。

2. Django 项目结构

Django 项目通常包含以下主要目录和文件:

  • manage.py:一个命令行工具,用于与该 Django 项目进行交互。
  • myproject/:包含项目的配置文件和应用程序的设置。
  • __init__.py:使目录被视为一个 Python 包。
  • settings.py:项目的全局配置文件。
  • urls.py:项目的 URL 声明。
  • asgi.py 和 wsgi.py:用于在部署项目时与 ASGI/WASGI 服务器交互的接口。

3. 创建 Django 应用

在 Django 中,项目可以包含多个应用(app)。每个应用都应专注于完成一个特定的功能。你可以使用以下命令创建一个新的应用:

python manage.py startapp myapp

该命令将生成一个名为 myapp 的目录,其中包含 Django 应用的基础结构。

4. 配置应用

创建应用后,你需要将其添加到项目的 settings.py 文件中的 INSTALLED_APPS 列表中:

INSTALLED_APPS = [
    ...
    'myapp',
]

5. 模型(Models)

Django 的模型是用于定义应用程序的数据结构的类。它们通常与数据库表一一对应。定义模型后,Django 将处理数据的增删改查操作。

5.1 创建模型

在 myapp/models.py 文件中定义一个简单的模型:

from django.db import models

class Book(models.Model):
    title = models.CharField(max_length=100)
    author = models.CharField(max_length=50)
    published_date = models.DateField()
5.2 迁移数据库

在定义好模型后,需要将其迁移到数据库中。首先运行以下命令以创建迁移文件:

python manage.py makemigrations

然后,运行以下命令应用这些迁移:

python manage.py migrate

6. 管理站点

Django 提供了一个自动生成的管理站点,可以用来管理应用程序的模型数据。要启用管理站点,你需要在 myapp/admin.py 文件中注册你的模型:

from django.contrib import admin
from .models import Book

admin.site.register(Book)

然后你可以通过运行以下命令启动开发服务器,并访问管理站点:

python manage.py runserver

访问 http://127.0.0.1:8000/admin/,你会看到一个登录界面。使用 createsuperuser 命令创建超级用户:

python manage.py createsuperuser

7. 视图(Views)

视图函数或类负责处理 HTTP 请求,并返回 HTTP 响应。在 myapp/views.py 中创建一个简单的视图:

from django.http import HttpResponse

def hello_world(request):
    return HttpResponse("Hello, World!")

8. URL 路由

在 myapp/urls.py 中定义 URL 模式,并将其添加到项目的 URL 配置中。在 myproject/urls.py 中:

from django.urls import path
from myapp import views

urlpatterns = [
    path('', views.hello_world),
]

9. 模板(Templates)

Django 的模板系统允许你将视图逻辑与表现层分离。首先在应用的目录下创建一个 templates 目录,然后在其中创建 HTML 文件。

例如,创建 templates/hello.html

<!DOCTYPE html>
<html>
<head>
    <title>Hello, World!</title>
</head>
<body>
    <h1>{{ message }}</h1>
</body>
</html>

在视图中渲染模板:

from django.shortcuts import render

def hello_world(request):
    return render(request, 'hello.html', {'message': 'Hello, World!'})

10. 静态文件和媒体文件

Django 提供了对静态文件(如 CSS、JavaScript、图像等)的支持。在 settings.py 文件中配置静态文件目录:

STATIC_URL = '/static/'
STATICFILES_DIRS = [
    BASE_DIR / "static",
]

11. 表单处理

Django 的表单框架允许你轻松处理用户输入。定义一个简单的表单:

from django import forms

class ContactForm(forms.Form):
    name = forms.CharField(max_length=100)
    email = forms.EmailField()
    message = forms.CharField(widget=forms.Textarea)

在视图中处理表单:

from django.shortcuts import render
from .forms import ContactForm

def contact_view(request):
    if request.method == 'POST':
        form = ContactForm(request.POST)
        if form.is_valid():
            # 处理表单数据
            pass
    else:
        form = ContactForm()

    return render(request, 'contact.html', {'form': form})

12. 部署 Django 项目

在开发完成后,你可能需要将 Django 项目部署到生产环境。Django 提供了多种部署选项,如使用 WSGI 服务器(如 Gunicorn)或 ASGI 服务器(如 Daphne)。可以选择使用 Nginx 或 Apache 作为前端服务器。

结论

通过上述介绍,你应该对 Django 的基础知识有了一个全面的了解。Django 以其丰富的功能和高效的开发流程,适合构建从简单到复杂的 Web 应用。继续深入学习 Django,将帮助你更好地掌握 Web 开发的各种技术和最佳实践。

栏目分类

联系方式
  • help@yxrjt.cn
  • lgc@yxrjt.cn
  • admin@yxrjt.cn