Django框架学习大纲

对于使用 Python 的 Django 框架进行 web 开发的程序员来说,以下几点是必须了解的。

环境配置与项目初始化

命令:

pip install django
django-admin startproject myproject

解析:

  • 使用 pip 安装 Django。
  • 使用 django-admin startproject 初始化一个新的 Django 项目。

创建应用

命令:

cd myproject
python manage.py startapp myapp

解析:

  • 进入项目文件夹。
  • 使用 python manage.py startapp 创建一个新的应用。

数据库迁移

命令:

python manage.py makemigrations
python manage.py migrate

解析:

  • makemigrations 会创建新的迁移文件。
  • migrate 实际应用这些迁移到数据库。

启动开发服务器

命令:

python manage.py runserver

解析:

启动开发服务器,一般会在 8000 端口。

创建超级用户(用于后台管理)

命令:

python manage.py createsuperuser

解析:

创建一个新的超级用户,用于登录 Django 的 admin 后台。

Django模型(Models)

  • 定义数据结构和数据库表映射。

代码示例:

class Book(models.Model):
    title = models.CharField(max_length=100)
    author = models.ForeignKey(Author, on_delete=models.CASCADE)

解析:

创建了一个名为 Book 的模型,包含字段 titleauthor

Django视图(Views)

  • 处理用户请求和返回响应。

代码示例:

from django.http import HttpResponse

def hello_world(request):
    return HttpResponse('Hello, world!')

解析:

创建了一个简单的视图,返回 “Hello, world!”。

Django模板(Templates)

  • 用于动态生成 HTML 页面。

代码示例:

DOCTYPE html>
<html>
<head>
    <title>{{ title }}title>
head>
<body>
    <h1>{{ header }}h1>
body>
html>

解析:

一个简单的模板,可以接收变量 titleheader 以动态生成 HTML。

Django表单(Forms)

  • 用于处理用户输入。

代码示例:

from django import forms

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

解析:

定义了一个名为 ContactForm 的表单,包含 nameemail 字段。

Django Admin

  • 用于创建后台管理界面。

代码示例:

from django.contrib import admin
from .models import Book

admin.site.register(Book)

解析:

在 admin 后台注册 Book 模型,这样就可以在后台进行 Book 数据的 CRUD 操作。

【提醒】这些只是 Django 框架中的一些核心概念和操作。对于更深入的了解,建议研究如何进行用户认证、使用中间件、缓存、信号(Signals)、创建 RESTful API 等高级主题。

用户认证

Django 自带了一个强大的用户认证系统。

命令:

python manage.py createsuperuser

解析:

这会创建一个可以访问 Django admin 界面的超级用户。

代码示例:

from django.contrib.auth.decorators import login_required

@login_required
def my_view(request):
    ...

解析:

使用 @login_required 装饰器来保护视图,只允许已登录用户访问。

使用中间件

中间件是处理请求和响应的钩子。

代码示例:

class SimpleMiddleware:
    def __init__(self, get_response):
        self.get_response = get_response

    def __call__(self, request):
        response = self.get_response(request)
        return response

解析:

这是一个非常基础的中间件示例,它什么都没做,只是简单地传递了请求和响应。

缓存

Django 支持多种缓存后端(例如,memcached、redis)。

代码示例:

from django.views.decorators.cache import cache_page

@cache_page(60 * 15)
def my_view(request):
    ...

解析:

@cache_page 装饰器会缓存视图的输出,参数是缓存的秒数(这里是15分钟)。

信号(Signals)

信号用于允许解耦的应用程序在某些事件发生时获得通知。

代码示例:

from django.db.models.signals import pre_save
from django.dispatch import receiver
from myapp.models import MyModel

@receiver(pre_save, sender=MyModel)
def my_callback(sender, **kwargs):
    ...

解析:

这里我们使用 pre_save 信号来在 MyModel 被保存之前执行 my_callback 函数。

创建 RESTful API

Django REST framework 是一个强大的库,用于快速构建 RESTful API。

命令:

pip install djangorestframework

代码示例:

from rest_framework import serializers, viewsets
from myapp.models import MyModel

class MyModelSerializer(serializers.ModelSerializer):
    class Meta:
        model = MyModel
        fields = '__all__'

class MyModelViewSet(viewsets.ModelViewSet):
    queryset = MyModel.objects.all()
    serializer_class = MyModelSerializer

解析:

  • 定义了一个名为 MyModelSerializer 的序列化器,用于将 MyModel 的实例序列化为 JSON。
  • 定义了一个名为 MyModelViewSet 的视图集,用于处理基础的 CRUD 操作。

以上仅为高级主题的基础介绍和简单示例,每一个主题都有很多深入和高级的用法。如果你对某一主题有更多的兴趣,我建议查阅 Django 的官方文档或相关教程进行深入学习。

你可能感兴趣的:(Python,django,学习,sqlite)