对于使用 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
的模型,包含字段 title
和 author
。
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>
解析:
一个简单的模板,可以接收变量 title
和 header
以动态生成 HTML。
Django表单(Forms)
- 用于处理用户输入。
代码示例:
from django import forms
class ContactForm(forms.Form):
name = forms.CharField(max_length=100)
email = forms.EmailField()
解析:
定义了一个名为 ContactForm
的表单,包含 name
和 email
字段。
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。文章来源:https://www.toymoban.com/news/detail-733251.html
命令:
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 的官方文档或相关教程进行深入学习。文章来源地址https://www.toymoban.com/news/detail-733251.html
到了这里,关于Django框架学习大纲的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!