最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python?Django實(shí)現(xiàn)增刪改查實(shí)戰(zhàn)代碼

 更新時(shí)間:2022年02月19日 11:31:30   作者:2c不高興  
這篇文章主要介紹了python?Django增刪改查快速體驗(yàn),本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

1.先創(chuàng)建個(gè)app子級(jí)

python .\manage.py startapp app01

然后創(chuàng)建數(shù)據(jù)模型

app01下的
modules.py文件

from django.db import models

# Create your models here.
class UserInfo(models.Model):
    name=models.CharField(max_length=32)
    password=models.CharField(max_length=12)
    age=models.IntegerField()
    tel=models.IntegerField(max_length=11)

配置數(shù)據(jù)庫(kù)

'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': '數(shù)據(jù)庫(kù)名',
        'USER': '數(shù)據(jù)庫(kù)用戶名',
        'PASSWORD': '密碼',
        'HOST': '127.0.0.1',
        'PORT': '3306',
    }

2.遷移數(shù)據(jù)庫(kù)

python manage.py makemigrations 和 python manage.py migrate

3.寫路由url

from django.contrib import admin
from django.urls import path,include
from app01 import views
urlpatterns = [
    # path('admin/', admin.site.urls),
    # path('index/',views.index),
    # path('user/list/', views.user_list),
    # path('login/', views.ApiLogin.as_view()),
    # path('del/', views.ApiDel.as_view()),
    path('add/', views.addUser.as_view()),
    path('user/', views.UserList.as_view()),
    path('updateuser/', views.upDateUser.as_view()),
    path('del/', views.deluser.as_view()),
]

4.view頁(yè)面編寫增刪改查

from django.shortcuts import render,HttpResponse
from rest_framework.views import APIView
# Create your views here.
from django import views
from app01.models import UserInfo
from rest_framework.response import Response
from app01.ser import APIViewUserInfo
class addUser(APIView):
    def post(self,request):
        obj=APIViewUserInfo(data=request.data)
        if obj.is_valid():
            obj.save()
            return Response({"data":obj.data, "status" : 201,"message":"添加用戶成功"})
        return Response(data=obj.errors,status=400)
class UserList(APIView):
    def get(self,request):
        obj=UserInfo.objects.all()
        ser=APIViewUserInfo(instance=obj,many=True)
        return Response(ser.data)
class upDateUser(APIView):
    def post(self,request):
        print(request.data.get('id'))
        i=request.data.get('id')
        try:
            user=UserInfo.objects.get(id=i)
        except Exception as e:
            return Response(data='不存在', status=201)
        # 創(chuàng)建序列化對(duì)象,并將要反序列化的數(shù)據(jù)傳遞給data構(gòu)造參數(shù),進(jìn)而進(jìn)行驗(yàn)證
        user.password=request.data.get('password')
        if request.data.get('name')!='':
            print(request.data.get('name')=='')
            user.name=request.data.get('name')
        user.save()
        return Response(status=400)
class deluser(APIView):
    def post(self,request):
        id=request.data.get('id')
        UserInfo.objects.filter(id=id).delete()
        return Response({"msg":'刪除成功',"state":"true"})
# def index(request):
#     return HttpResponse("歡迎使用")
#
#
# def user_list(request):
#     return render(request,"user_list.html")
#
# class ApiLogin(APIView):
#     def get(self,request):
#         return HttpResponse('get')
#     def post(self,request):
#         UserInfo.objects.create(name='張三',password='123456',age=15,tel='1234567891')
#         obj=UserInfo.objects.all()
#         print(obj)
#         return HttpResponse('post')
#
# class ApiDel(APIView):
#     def post(self,request):
#         UserInfo.objects.filter(id=4).delete()
#         return HttpResponse('刪除成功')

5.序列化 反序列化

# -*- coding: utf-8 -*-
from rest_framework import serializers
from app01.models import UserInfo
class APIViewUserInfo(serializers.Serializer):
    """圖書(shū)數(shù)據(jù)序列化器"""
    id = serializers.IntegerField(label='ID', read_only=True)       # 主鍵序列化
    # 第一:普通字段序列化
    name = serializers.CharField(label='名稱', max_length=20)
    password = serializers.CharField(label='密碼')
    age = serializers.IntegerField(label='年齡', required=False)
    tel = serializers.IntegerField(label='電話', required=False)
    # # 第二:一對(duì)多字段序列化
    # heroinfo_set = serializers.PrimaryKeyRelatedField(read_only=True, many=True)
    # # 第三:自定義顯示(顯示多對(duì)多)
    # xxx = serializers.SerializerMethodField(read_only=True)
    class Meta:
        model = UserInfo
    # 自定義顯示 多對(duì)多 字段
 # 定義創(chuàng)建語(yǔ)法:ser.save()執(zhí)行,就會(huì)立刻調(diào)用create方法用來(lái)創(chuàng)建數(shù)據(jù)
    def create(self, validated_data):
        '''validated_data: 表單或者vue請(qǐng)求攜帶的json:{"username":"zhangsan","password":"123456"}'''
        return self.Meta.model.objects.create(**validated_data)

到此這篇關(guān)于python Django增刪改查 快速體驗(yàn)的文章就介紹到這了,更多相關(guān)python Django增刪改查內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python 批量讀取文件中指定字符的實(shí)現(xiàn)

    Python 批量讀取文件中指定字符的實(shí)現(xiàn)

    這篇文章主要介紹了Python 批量讀取文件中指定字符的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-03-03
  • 使用Puppeteer爬取微信文章的實(shí)現(xiàn)

    使用Puppeteer爬取微信文章的實(shí)現(xiàn)

    這篇文章主要介紹了使用Puppeteer爬取微信文章的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-02-02
  • 關(guān)于pyinstaller?打包多個(gè)py文件的問(wèn)題

    關(guān)于pyinstaller?打包多個(gè)py文件的問(wèn)題

    這篇文章主要介紹了pyinstaller?打包多個(gè)py文件及遇到的問(wèn)題,本文通過(guò)實(shí)例代碼給大家詳細(xì)介紹,對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-10-10
  • BatchNorm2d原理、作用及pytorch中BatchNorm2d函數(shù)的參數(shù)使用

    BatchNorm2d原理、作用及pytorch中BatchNorm2d函數(shù)的參數(shù)使用

    這篇文章主要介紹了BatchNorm2d原理、作用及pytorch中BatchNorm2d函數(shù)的參數(shù)使用方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-12-12
  • Python-split()函數(shù)實(shí)例用法講解

    Python-split()函數(shù)實(shí)例用法講解

    在本篇文章里小編給大家整理的是一篇關(guān)于Python-split()函數(shù)實(shí)例用法講解,有興趣的朋友們可以學(xué)習(xí)下。
    2020-12-12
  • Python光學(xué)仿真數(shù)值分析求解波動(dòng)方程繪制波包變化圖

    Python光學(xué)仿真數(shù)值分析求解波動(dòng)方程繪制波包變化圖

    這篇文章主要為大家介紹了Python光學(xué)仿真通過(guò)數(shù)值分析求解波動(dòng)方程并繪制波包變化圖的示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助
    2021-10-10
  • python反轉(zhuǎn)單鏈表算法題

    python反轉(zhuǎn)單鏈表算法題

    這篇文章主要為大家詳細(xì)介紹了python反轉(zhuǎn)單鏈表算法題,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-05-05
  • Sublime?Text4?配置?Python3?環(huán)境、代碼提示、編譯報(bào)錯(cuò)的解決方案

    Sublime?Text4?配置?Python3?環(huán)境、代碼提示、編譯報(bào)錯(cuò)的解決方案

    這篇文章主要介紹了Sublime?Text4?配置?Python3?環(huán)境、代碼提示、編譯報(bào)錯(cuò)教程,通過(guò)圖文并茂的形式給大家介紹了配置自動(dòng)代碼提示的方法,需要的朋友可以參考下
    2022-01-01
  • 詳解運(yùn)行Python的神器Jupyter Notebook

    詳解運(yùn)行Python的神器Jupyter Notebook

    如果我們想要運(yùn)行Python,就是在Python或者IPython的解釋器環(huán)境中進(jìn)行交互式運(yùn)行,或者程序員最喜歡的編寫.py文件,在文件中編寫python代碼,然后運(yùn)行。如果想寫一篇Python的文章,里面有代碼,還希望代碼在當(dāng)前頁(yè)面運(yùn)行,那就是使用我們今天要介紹的Jupyter Notebook。
    2021-06-06
  • python-opencv在有噪音的情況下提取圖像的輪廓實(shí)例

    python-opencv在有噪音的情況下提取圖像的輪廓實(shí)例

    下面小編就為大家?guī)?lái)一篇python-opencv在有噪音的情況下提取圖像的輪廓實(shí)例。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-08-08

最新評(píng)論

中方县| 武功县| 遂宁市| 双柏县| 隆尧县| 永定县| 张家港市| 大英县| 岑巩县| 志丹县| 马公市| 桃园县| 扎兰屯市| 库尔勒市| 连山| 宁城县| 通道| 赤壁市| 汤原县| 日土县| 贺州市| 上饶市| 巴彦淖尔市| 新泰市| 顺平县| 灵宝市| 麻栗坡县| 普安县| 湖口县| 淳化县| 巴彦县| 阜新| 荣昌县| 连城县| 汉川市| 普兰县| 林西县| 垦利县| 广安市| 仲巴县| 专栏|