django

176 阅读1分钟

1.新建项目修改配置文件

# 1.注册rest_framework、app
INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    # 注册rest_framework、app
    'rest_framework',  
    'member'
]
# 2.修改数据库
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',  # 数据库引擎
        'NAME': 'family',  # 数据库名
        'USER': 'root',  # 账号
        'PASSWORD': 'root',  # 密码
        'HOST': '127.0.0.1',  # HOST
        'POST': 3306,  # 端口
    }
}
# 3.在__iniy__.py中引入 mysql 驱动
import pymysql  
pymysql.install_as_MySQLdb()

2. 新建模型层

from django.db import models

# Create your models here.


class Member(models.Model):
    name = models.CharField(max_length=64)
    sex = models.CharField(max_length=4)
    age = models.CharField(max_length=32)
    birthday = models.DateField(max_length=64)

    def __str__(self):
        return self.name

3. 序列化器

from rest_framework import serializers
from member.models import Member, Book


class MemberSerializer(serializers.ModelSerializer):
    class Meta:
        model = Member
        fields = ('id', 'name', 'sex', 'age', 'birthday')

4.试图层

from rest_framework import viewsets, status
from rest_framework.response import Response # 自定义响应
from member.models import Member, Book
from member.serializers import BookDetailSerializer, MemberSerializer, BookSerializer
from django.db.models import Avg  # , Max, Min, Count, Sum  引入函数


# Create your views here.


class MemberViewSet(viewsets.ModelViewSet):
    queryset = Member.objects.all().order_by('name')
    serializer_class = MemberSerializer

5.注册路由

from django.urls import include, path
from rest_framework import routers
from . import views

router = routers.DefaultRouter()
router.register(r'familymember', views.MemberViewSet)  # 注册路由到ManViewSet视图

urlpatterns = [
    path('', include(router.urls)),  # 使用router路由
    path('api-auth/', include('rest_framework.urls', namespace='rest_framework'))
]

父工程也要注册

from django.contrib import admin
from django.urls import include, path

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