1. 创建项目
# 在创建的虚拟环境中安装 Django 和 Django REST framework
pip install django
pip install djangorestframework
# 创建一个新项目和一个单个应用
django-admin.py startproject 项目名 . # 注意结尾的'.'符号
cd 项目名
2.创建应用
创建应用的2种方法
django-admin.py startapp 应用名
python manage.py startapp 应用名
3.注册应用
Settings.py
INSTALLED_APPS = [
'rest_framework',
'应用名',
]
4.创建模型
Models.py
from django.db import models
class Project(models.Model):
name = models.CharField(max_length=100, unique=True)
description = models.TextField(verbose_name="项目描述", blank=True, null=True) # 项目描述
created_at = models.DateTimeField(auto_now_add=True, verbose_name="创建时间") # 创建时间
updated_at = models.DateTimeField(auto_now=True, verbose_name="更新时间") # 更新时间
order = models.IntegerField(default=0,blank=True,verbose_name="排序") # 项目排序
def __str__(self):
return self.name
5.创建视图
views.py
class ProjectViewSet(viewsets.ModelViewSet):
queryset = Project.objects.all().order_by("-created_at")
serializer_class = ProjectSerializer
pagination_class = CustomPagination # 应用分页器
serializers.py
from rest_framework import serializers
from cqtestapp.models import Project
class ProjectSerializer(serializers.ModelSerializer):
created_at_formatted = serializers.SerializerMethodField()
updated_at_formatted = serializers.SerializerMethodField()
class Meta:
model = Project
fields = ['id', 'name', 'description', 'created_at_formatted', 'updated_at_formatted']
# 如果你还需要其他字段,可以在这里添加它们
def get_created_at_formatted(self, obj):
return obj.created_at.strftime('%Y-%m-%d %H:%M:%S')
def get_updated_at_formatted(self, obj):
return obj.updated_at.strftime('%Y-%m-%d %H:%M:%S')
6. urls.py 配置
应用下的urls.py
from django.urls import re_path,path, include
from . import views
##下面注册ModelViewSet
from rest_framework.routers import DefaultRouter
from .views import ProjectViewSet
router = DefaultRouter()
router.register(r'projects', ProjectViewSet)
urlpatterns = [
path('', include(router.urls)),
]
项目下的urls.py
from django.contrib import admin
from django.urls import include, re_path
urlpatterns = [
re_path(r'^admin/', admin.site.urls),
re_path(r'^test/', include('testapp.urls')), # 注意去掉了前面的斜杠 '/'
]
7.运行项目
启动方法一:
python manage.py runserver 127.0.0.1:8000
启动方法二:
gunicorn testproject.wsgi:application --bind 0.0.0.0:9000 --daemon