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

1.先創(chuàng)建個(gè)app子級
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ù)庫
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': '數(shù)據(jù)庫名',
'USER': '數(shù)據(jù)庫用戶名',
'PASSWORD': '密碼',
'HOST': '127.0.0.1',
'PORT': '3306',
}2.遷移數(shù)據(jù)庫
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頁面編寫增刪改查
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)建序列化對象,并將要反序列化的數(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ù)據(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)
# # 第二:一對多字段序列化
# heroinfo_set = serializers.PrimaryKeyRelatedField(read_only=True, many=True)
# # 第三:自定義顯示(顯示多對多)
# xxx = serializers.SerializerMethodField(read_only=True)
class Meta:
model = UserInfo
# 自定義顯示 多對多 字段
# 定義創(chuàng)建語法:ser.save()執(zhí)行,就會(huì)立刻調(diào)用create方法用來創(chuàng)建數(shù)據(jù)
def create(self, validated_data):
'''validated_data: 表單或者vue請求攜帶的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)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python數(shù)據(jù)處理利器Slice函數(shù)用法詳解
這篇文章主要給大家介紹了關(guān)于Python數(shù)據(jù)處理利器Slice函數(shù)用法的相關(guān)資料,slice函數(shù)是Python中的一個(gè)內(nèi)置函數(shù),用于對序列進(jìn)行切片操作,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下2024-03-03
Python中數(shù)據(jù)類轉(zhuǎn)換為JSON的方法詳解
這篇文章主要介紹了Python中數(shù)據(jù)類轉(zhuǎn)換為JSON的方法詳解的相關(guān)資料,需要的朋友可以參考下2023-09-09
pytorch實(shí)現(xiàn)用CNN和LSTM對文本進(jìn)行分類方式
今天小編就為大家分享一篇pytorch實(shí)現(xiàn)用CNN和LSTM對文本進(jìn)行分類方式,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-01-01
python調(diào)用攝像頭拍攝數(shù)據(jù)集
這篇文章主要為大家詳細(xì)介紹了Python調(diào)用攝像頭拍攝數(shù)據(jù)集,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-06-06
Python基于smtplib實(shí)現(xiàn)異步發(fā)送郵件服務(wù)
這篇文章主要介紹了Python基于smtplib實(shí)現(xiàn)異步發(fā)送郵件服務(wù),需要的朋友可以參考下2015-05-05

