Django基础知识点有哪些

发布时间:2021-12-17 17:21:23 作者:iii
来源:亿速云 阅读:135
# Django基础知识点有哪些

## 一、Django框架概述

Django是一个基于Python的高级Web框架,它遵循MVC(模型-视图-控制器)设计模式,但在Django中通常被称为MTV(模型-模板-视图)模式。Django以其"开箱即用"的特性著称,提供了许多内置功能,如用户认证、内容管理、站点地图等。

### 核心特点
1. **快速开发**:DRY(Don't Repeat Yourself)原则
2. **安全性**:自动处理SQL注入、XSS等安全问题
3. **可扩展性**:支持从小型项目到大型企业应用
4. **完善的文档**:官方文档详尽且示例丰富

## 二、Django项目结构

典型的Django项目结构如下:

myproject/ ├── manage.py # 项目管理脚本 ├── myproject/ # 项目主目录 │ ├── init.py │ ├── settings.py # 项目配置 │ ├── urls.py # 主路由配置 │ └── wsgi.py # WSGI配置 └── myapp/ # 应用目录 ├── migrations/ # 数据库迁移文件 ├── init.py ├── admin.py # 管理后台配置 ├── apps.py # 应用配置 ├── models.py # 数据模型 ├── tests.py # 测试代码 ├── urls.py # 应用路由 └── views.py # 视图函数


## 三、核心组件详解

### 1. 模型(Models)

Django的ORM系统允许使用Python类定义数据模型:

```python
from django.db import models

class Book(models.Model):
    title = models.CharField(max_length=100)
    author = models.ForeignKey('Author', on_delete=models.CASCADE)
    publish_date = models.DateField()
    
    def __str__(self):
        return self.title

常用字段类型: - CharField:字符串字段 - IntegerField:整数字段 - TextField:长文本 - BooleanField:布尔值 - DateTimeField:日期时间

2. 视图(Views)

视图处理业务逻辑并返回响应:

from django.shortcuts import render
from .models import Book

def book_list(request):
    books = Book.objects.all()
    return render(request, 'books/list.html', {'books': books})

视图类型: - 函数视图 - 类视图(如ListView, DetailView) - API视图(DRF框架)

3. 模板(Templates)

Django模板语言(DTL)示例:

{% for book in books %}
    <div class="book">
        <h2>{{ book.title }}</h2>
        <p>作者: {{ book.author.name }}</p>
    </div>
{% empty %}
    <p>暂无书籍</p>
{% endfor %}

模板继承

<!-- base.html -->
<html>
<head><title>{% block title %}默认标题{% endblock %}</title></head>
<body>
    {% block content %}{% endblock %}
</body>
</html>

<!-- child.html -->
{% extends "base.html" %}
{% block title %}子页面标题{% endblock %}
{% block content %}
    <h1>页面内容</h1>
{% endblock %}

4. URL路由

URL配置示例:

# myproject/urls.py
from django.urls import path
from myapp import views

urlpatterns = [
    path('books/', views.book_list, name='book-list'),
    path('books/<int:pk>/', views.book_detail, name='book-detail'),
]

路由技术: - 路径参数(<int:pk>) - 命名路由(name属性) - 路由包含(include()

四、Django Admin

内置管理后台的配置:

# admin.py
from django.contrib import admin
from .models import Book

@admin.register(Book)
class BookAdmin(admin.ModelAdmin):
    list_display = ('title', 'author', 'publish_date')
    search_fields = ('title', 'author__name')
    list_filter = ('publish_date',)

常用功能: - 自定义列表显示 - 搜索和过滤 - 批量操作 - 内联编辑

五、表单处理

Django表单系统示例:

# forms.py
from django import forms
from .models import Comment

class CommentForm(forms.ModelForm):
    class Meta:
        model = Comment
        fields = ('content', 'email')
        widgets = {
            'content': forms.Textarea(attrs={'rows': 4}),
        }

表单处理流程: 1. GET请求时显示空表单 2. POST请求时验证数据 3. 有效时保存数据 4. 无效时显示错误

六、用户认证

内置认证系统功能:

# 登录视图示例
from django.contrib.auth import authenticate, login

def login_view(request):
    if request.method == 'POST':
        user = authenticate(
            username=request.POST['username'],
            password=request.POST['password']
        )
        if user is not None:
            login(request, user)
            return redirect('home')
    return render(request, 'login.html')

主要组件: - 用户模型(User) - 权限系统(Permissions) - 用户组(Groups) - 密码哈希处理

七、中间件

Django请求处理流程中的中间件:

# 自定义中间件示例
class SimpleMiddleware:
    def __init__(self, get_response):
        self.get_response = get_response

    def __call__(self, request):
        # 请求处理前的代码
        response = self.get_response(request)
        # 响应处理后的代码
        return response

内置中间件: - 安全中间件 - 会话支持 - CSRF保护 - 缓存支持

八、测试与调试

1. 单元测试

from django.test import TestCase
from .models import Book

class BookTestCase(TestCase):
    def setUp(self):
        Book.objects.create(title="测试书籍")

    def test_book_str(self):
        book = Book.objects.get(title="测试书籍")
        self.assertEqual(str(book), "测试书籍")

2. 调试工具

九、部署基础

基本部署步骤: 1. 设置DEBUG = False 2. 配置ALLOWED_HOSTS 3. 收集静态文件:python manage.py collectstatic 4. 配置生产数据库 5. 设置WSGI服务器(如Gunicorn) 6. 配置Web服务器(如Nginx)

十、常见扩展包

  1. Django REST framework:构建API
  2. Django Channels:处理WebSocket
  3. Django Celery:异步任务
  4. Django Crispy Forms:美化表单
  5. Django Allauth:第三方登录

结语

掌握这些Django基础知识点后,您已经具备了开发基本Web应用的能力。Django的强大之处在于其深度和灵活性,随着实践的深入,您会发现更多高级特性和最佳实践。建议从官方文档开始,逐步探索框架的各个层面。 “`

这篇文章涵盖了Django的主要基础知识点,总字数约1750字,采用Markdown格式编写,包含代码示例和结构化内容。您可以根据需要进一步扩展或调整各部分内容。

推荐阅读:
  1. html基础知识点有哪些
  2. InnoDB基础知识点有哪些

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

django

上一篇:Ionic3中如何实现夜间模式功能

下一篇:如何进行springboot配置templates直接访问的实现

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》