环境搭建
安装python并配置环境变量
安装插件python、django
pip 安装 django
注:遇到升级情况
1 python -m pip install --upgrade pip
初始化项目
1 django-admin startproject 项目名
1 python manage.py startapp main
设置解释器为venv中的python.exe(也可以不设置)
1 python manage.py runserver
增删改查(简单实现)
1 2 3 4 5 6 7 8 9 10 11 DATABASES = { 'default' : { 'ENGINE' : 'django.db.backends.mysql' , 'NAME' : 'python' , 'USER' : 'root' , 'PASSWORD' : '123456' , 'HOST' : 'localhost' , 'PORT' : '3306' , 'OPTIONS' : {'charset' : 'utf8mb4' }, } }
引入apps settings.py 如应用程序名称为main
1 2 3 4 5 6 7 8 9 INSTALLED_APPS = [ 'django.contrib.admin' , 'django.contrib.auth' , 'django.contrib.contenttypes' , 'django.contrib.sessions' , 'django.contrib.messages' , 'django.contrib.staticfiles' , 'main' ]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 from django.db import modelsclass First (models.Model): id = models.CharField(max_length=30 , primary_key=True ) message = models.CharField(max_length=30 ) def __str__ (self ): return f"{self.id } {self.message} " class Meta : db_table = 'first' class Second (models.Model): id = models.CharField(max_length=30 , primary_key=True ) first_id = models.CharField(max_length=30 ) message = models.CharField(max_length=30 ) def __str__ (self ): return f"{self.id } {self.first_id} {self.message} " class Meta : db_table = 'second'
1 2 3 4 5 6 7 8 urlpatterns = [ path('saveFirstData/' , views.saveFirstData, name='saveFirstData' ), path('getFirstData/' , views.getFirstData, name='getFirstData' ), path('postFirstData/' , views.postFirstData, name='postFirstData' ), path('updateFirstData/' , views.updateFirstData, name='updateFirstData' ), path('deleteFirstData/' , views.deleteFirstData, name='deleteFirstData' ), path('getRelatedSelect/' , views.getRelatedSelect, name='getRelatedSelect' ), ]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 from django.http import HttpResponsefrom .models import First, Secondimport jsonfrom django.http import HttpResponseBadRequest, JsonResponsefrom django.db import connectionsdef saveFirstData (request ): firstSave = First(id ='3' , message='33333' ) firstSave.save() return HttpResponse("新增成功" ) def updateFirstData (request ): firstDataForUpdate = First.objects.get(id ='3' ) firstDataForUpdate.message = '44444' firstDataForUpdate.save() return HttpResponse("修改成功" ) def postFirstData (request ): if request.method == 'POST' : try : data = json.loads(request.body.decode('utf-8' )) except json.JSONDecodeError: return HttpResponseBadRequest("Invalid JSON data." ) id = data.get('id' ) message = data.get('message' ) response_data = {'id' : id , 'message' : message} return JsonResponse(response_data) else : return HttpResponseBadRequest("Only POST requests are allowed." ) def getFirstData (request ): firstInfos = First.objects.all () for firstInfo in firstInfos: print (str (firstInfo)) id = request.GET.get('id' , '' ) message = request.GET.get('message' , '' ) firstInfoTwos = First.objects.filter (message=message) for firstInfoTwo in firstInfoTwos: print (str (firstInfoTwo)) firstInfoThree = First.objects.get(message=message) print (str (firstInfoThree)) firstInfoFours = First.objects.exclude(id =id ) for firstInfoFour in firstInfoFours: print (str (firstInfoFour)) return HttpResponse("查询成功" ) def deleteFirstData (request ): firstDataForUpdate = First.objects.get(id ='3' ) firstDataForUpdate.delete() return HttpResponse("删除成功" ) def getRelatedSelect (request ): sql = "select `second`.* from `first` left join `second` on `first`.id = `second`.first_id " with connections['default' ].cursor() as cursor: cursor.execute(sql) result = cursor.fetchall() for item in result: print (str (item)) return HttpResponse("关联查询成功" )