Django

Django 讲解

目录

  1. 什么是 Django?
  2. Django 的核心特点
  3. Django 环境搭建与安装
    • 安装 Django
    • 创建 Django 项目
  4. Django 的基本概念
    • 项目与应用的关系
    • MVT(模型-视图-模板)架构
  5. 构建一个简单的 Django 应用
    • 创建并配置应用
    • 配置数据库
    • 构建模型(Models)
    • 编写视图(Views)
    • 创建模板(Templates)
    • 配置 URL
  6. 数据库操作与 Django 管理后台
  7. 使用 Django 构建动态网页
  8. 部署 Django 项目
  9. 总结

1. 什么是 Django?

Django 是一个基于 Python 的 Web 框架,旨在让开发人员能够快速构建功能强大、安全且可扩展的 Web 应用程序。它采用了 "Don't Repeat Yourself"(DRY,别重复自己)的开发原则,让开发者能够更专注于应用逻辑而不是基础设施建设。

简而言之,Django 是一款工具,它帮助开发人员用更少的代码实现更多功能,非常适合从简单的博客到复杂的企业级网站开发。


2. Django 的核心特点

  1. 快速开发:Django 提供了开箱即用的功能,如认证系统、管理界面等,减少了开发时间。
  2. 内置管理后台:Django 提供了一个自动生成的管理后台,非常适合数据管理和测试。
  3. 安全性高:Django 内置防护功能,能有效避免常见的安全问题,如 SQL 注入和跨站脚本攻击。
  4. 丰富的社区和文档:Django 拥有庞大的社区和详尽的文档,容易查找解决方案和问题。
  5. 高可扩展性:Django 采用模块化设计,支持插件扩展和集成第三方库,非常灵活。

3. Django 环境搭建与安装

安装 Django

  1. 创建虚拟环境(推荐):

    • 首先确保你已经安装了 pip(Python 的包管理工具)和 virtualenv(虚拟环境工具)。

    • 创建虚拟环境:

      bash 复制代码
      python -m venv myenv
    • 激活虚拟环境:

      • Windows:

        bash 复制代码
        myenv\Scripts\activate
      • macOS/Linux:

        bash 复制代码
        source myenv/bin/activate
  2. 安装 Django

    • 使用 pip 安装最新版本的 Django:

      bash 复制代码
      pip install django
    • 验证安装是否成功:

      bash 复制代码
      django-admin --version

创建 Django 项目

  1. 创建项目

    • 使用 django-admin 创建一个新的项目:

      bash 复制代码
      django-admin startproject myproject
    • 这会创建一个名为 myproject 的目录,里面包含了 Django 项目结构的基本文件。

  2. 运行项目

    • 进入项目目录:

      bash 复制代码
      cd myproject
    • 启动开发服务器:

      bash 复制代码
      python manage.py runserver
    • 打开浏览器访问 http://127.0.0.1:8000/,你会看到 Django 的欢迎页面,表明项目创建成功。


4. Django 的基本概念

项目与应用的关系

  • 项目:Django 项目是一个完整的 Web 网站,由多个应用组成。
  • 应用 :应用是项目的一个模块或组件,可以是独立的功能部分。例如,一个博客项目可能会有 blog 应用来处理文章,user 应用来管理用户。

MVT(模型-视图-模板)架构

Django 采用了 MVT 设计模式,类似于传统的 MVC(模型-视图-控制器),但有所不同。

  1. Model(模型):表示数据和数据库逻辑,用于定义数据结构(表)。
  2. View(视图):处理业务逻辑,接收请求,返回响应。可以是渲染的 HTML 页面、API 数据等。
  3. Template(模板):负责显示数据,用于定义页面的 HTML 模板。

5. 构建一个简单的 Django 应用

创建并配置应用

  1. 创建应用

    • 使用 manage.py 创建一个新的应用:

      bash 复制代码
      python manage.py startapp blog
    • 这会创建一个名为 blog 的目录,其中包含应用的基本文件。

  2. 配置应用

    • 打开 myproject/settings.py,找到 INSTALLED_APPS 列表,添加新创建的 blog 应用:

      python 复制代码
      INSTALLED_APPS = [
          ...
          'blog',
      ]

配置数据库

Django 默认使用 SQLite 数据库。你可以在 settings.py 中配置其他数据库,如 MySQL 或 PostgreSQL。

构建模型(Models)

blog/models.py 中定义一个简单的文章模型:

python 复制代码
from django.db import models

class Article(models.Model):
    title = models.CharField(max_length=100)
    content = models.TextField()
    created_at = models.DateTimeField(auto_now_add=True)

    def __str__(self):
        return self.title
  • models.CharField:定义一个字符串字段。
  • models.TextField:定义一个文本字段。
  • models.DateTimeField:日期时间字段,auto_now_add=True 表示自动设置为创建时间。

编写视图(Views)

blog/views.py 中编写一个简单的视图函数来展示文章列表:

python 复制代码
from django.shortcuts import render
from .models import Article

def article_list(request):
    articles = Article.objects.all()
    return render(request, 'blog/article_list.html', {'articles': articles})

创建模板(Templates)

blog 目录下创建一个 templates/blog 文件夹,并在其中创建 article_list.html 文件:

html 复制代码
<!DOCTYPE html>
<html>
<head>
    <title>文章列表</title>
</head>
<body>
    <h1>文章列表</h1>
    <ul>
        {% for article in articles %}
        <li>{{ article.title }} - {{ article.created_at }}</li>
        {% endfor %}
    </ul>
</body>
</html>

配置 URL

blog 应用中创建一个 urls.py 文件,定义 URL 路由:

python 复制代码
from django.urls import path
from .views import article_list

urlpatterns = [
    path('', article_list, name='article_list'),
]

然后在项目的 myproject/urls.py 中包含 blog 应用的 URL:

python 复制代码
from django.contrib import admin
from django.urls import path, include

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

现在你可以访问 http://127.0.0.1:8000/blog/ 查看文章列表页面。


6. 数据库操作与 Django 管理后台

数据库迁移

Django 提供了内置工具来同步模型和数据库:

  1. 生成迁移文件

    bash 复制代码
    python manage.py makemigrations
  2. 应用迁移

    bash 复制代码
    python manage.py migrate

使用 Django 管理后台

  1. 创建超级用户(管理员账户):

    bash 复制代码
    python manage.py createsuperuser
  2. 访问管理后台:

    • 启动开发服务器,访问 http://127.0.0.1:8000/admin/
    • 使用刚才创建的超级用户账号登录,管理后台允许你直接操作模型数据。

7. 使用 Django 构建动态网页

通过 Django,可以轻松构建包含动态内容的网页。使用表单、模板过滤器、分页等功能,可以将用户输入与数据库数据集成,构建更复杂的应用。

示例:创建一个简单的表单

views.py 中创建一个视图来处理用户提交的表单数据,并返回不同的响应。

示例:分页功能

Django 提供了内置的分页工具,可以轻松实现内容的分页展示。


8. 部署 Django 项目

在本地开发完成后,可以将项目部署到线上服务器。

常见的部署方式包括使用 Gunicorn 作为 WSGI 服务器,搭配 NginxApache 作为反向代理。

步骤简述

  1. 安装部署工具(如 Gunicorn)。
  2. 配置数据库(推荐使用 PostgreSQL)。
  3. 配置静态文件与媒体文件的路径。
  4. 通过 Docker 容器化部署(可选)。
  5. 使用 Nginx 进行反向代理配置。

9. 总结

Django 是一个功能强大的 Python Web 框架,适合从小型个人项目到大型企业应用的开发。它的 MVT 架构让开发变得更加清晰和高效,同时内置的管理后台和数据库工具让开发者能够专注于业务逻辑的实现。

希望这个讲解能帮助你理解 Django 的基本概念和开发流程。如果你有任何具体的问题或需要更深入的实例,请随时告诉我!

相关推荐
studyForMokey3 分钟前
[Kotlin标准函数] run、with、apply、also、let、use等
前端·python·kotlin
Star Patrick10 分钟前
算法训练(leetcode)二刷第二十五天 | *134. 加油站、*135. 分发糖果、860. 柠檬水找零、*406. 根据身高重建队列
python·算法·leetcode
罔闻_spider11 分钟前
递归(二)---力扣22括号生成,力扣78求子集
开发语言·python
2402_8575834912 分钟前
Spring Boot框架:电商开发的新趋势
数据库·spring boot·后端
数据媛14 分钟前
TensorFlow_T7 咖啡豆识别
人工智能·python·深度学习·机器学习·tensorflow
写bug写bug22 分钟前
探秘 Java 泛型:从类型参数到边界限制与类型擦除
java·后端
言之。25 分钟前
[python3] tornado 使用swagger编写接口文档
python·tornado
彭彭不吃虫子27 分钟前
【字符串】给定一个字符串 text 和字符串列表 words,返回 words 中每个单词在 text 中的位置(要求最终的位置从小到大进行排序)
开发语言·数据结构·python
凡人的AI工具箱34 分钟前
15分钟学 Go 第 59 天 :更高级的Go话题——接触微服务
开发语言·人工智能·后端·微服务·golang
vibag43 分钟前
Flink算子
java·大数据·后端·flink