zoukankan      html  css  js  c++  java
  • rest_framework django 简单使用(数据库创建数据, 覆盖数据, 其他的大同小异)

    事先说几个坑:数据库定义字段时候,不要定义name 要定义 username

    首先, 定义model(简单定义)

    from django.db import models
    from django.contrib.auth.models import AbstractUser
    # Create your models here.
    
    # 可以不要定义ID ,id字段数据库会自动创建
    class User(models.Model, models.Manager):
    
        class Meta:
            db_table = 'user'
    
        username = models.CharField(db_column='username', max_length=128, null=True)
        text = models.CharField(db_column='text', max_length=128, null=True)

    第二, 定义user的序列化器, 在你的app下新建一个.py文件,默认叫做serializers.py

    from rest_framework import serializers
    from .models import User
    
    
    class UserSerializers(serializers.ModelSerializer):
        class Meta:
            model = User              # 指定序列化的model 是哪一个
            fields = ['username', 'text']    # 指定需要序列化的字段
     
        def create(self, validated_data):
            print(validated_data)
            return User.objects.create(**validated_data)   # 这个create 调用的是类似QuerySet()这个类的方法,所以不会递归。
    
    
    
        def update(self, instance, validated_data):
            print('-' * 30, 'update')
            # print(instance, validated_data, '~~~~~~~~~~~~~~~~~')
            instance.username = validated_data.get('username')
            instance.text = validated_data.get('text')
            instance.save() 
            return instance

    第三步, 指定路由

    from django.contrib import admin
    from django.urls import path, includefrom hys import views
    import hys
    
    urlpatterns = [
        path('admin/', admin.site.urls),
        path('',views.Index.as_view())  # views : views 文件   Index:视图类  as_view():调用方式(具体意思不是特别清楚)
    ]

    第四步, 配置settings

    INSTALLED_APPS = [
        'django.contrib.admin',
        'django.contrib.auth',
        'django.contrib.contenttypes',
        'django.contrib.sessions',
        'django.contrib.messages',
        'django.contrib.staticfiles',
        'hys',         # hys 为自己键的app 的名字
        'rest_framework',   # rest_framework 为rest_framework 架构, 如果想使用,需要在这里制定。
    ]

    配上官网实例(讲的非常详细):https://www.django-rest-framework.org/ 

    邮箱: 1090055252@qq.com
  • 相关阅读:
    【LeetCode】208.实现Trie(前缀树)(java+c++,两种方法实现,详细图解)
    《java入门第一季》之二维数组
    《java入门第一季》之二维数组
    iOS中UITableView分割线左侧顶齐
    open_links_per_instance 和 open_links 参数说明
    《java第一季之入门篇》的想法
    十四个方法提高博客的页面访问量
    Android中的Message机制
    OC中的枚举类型
    解决ADT大量出现"Unexpected value from nativeGetEnabledTags: 0"的问题
  • 原文地址:https://www.cnblogs.com/zhaoxianxin/p/13158890.html
Copyright © 2011-2022 走看看