Python 操作 mysql数据库的一个小小的基础案例,小白新手,以备后用~~
model.py 中的代码
1 # Create your models here. 2 3 # 书和作者一对多 4 class Author(models.Model): 5 name = models.CharField(max_length=32) 6 age = models.IntegerField() 7 8 9 class Book(models.Model): 10 author = models.ForeignKey('Author', on_delete=models.CASCADE) 11 namebook = models.CharField(max_length=32) 12 nametype = models.CharField(max_length=32) 13 14 15 16 # 学生和老师多对多 17 18 class Teacher(models.Model): 19 name = models.CharField(max_length=32) 20 sex = models.CharField(max_length=32) 21 22 23 class Student(models.Model): 24 name = models.CharField(max_length=32) 25 sex = models.CharField(max_length=32) 26 teacher = models.ManyToManyField('Teacher')
数据库操作命令:
python manage.py makemigrations
python manage.py migrate
setting.py 中的数据库配置
# Database # https://docs.djangoproject.com/en/2.0/ref/settings/#databases DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'as', 'USER': 'root', 'PASSWORD': '123456', 'HOST': '127.0.0.1', 'PORT': '3306', } }
view.py 中的数据库操作
from django.shortcuts import render, HttpResponse from app01 import models # Create your views here. def add(request): """添加Author数据""" models.Author.objects.create(name='wangjiawei', age=18) models.Author.objects.create(name='sujiale', age=19) models.Author.objects.create(name='lixiangshuai', age=20) models.Author.objects.create(name='zouqingxv', age=21) return HttpResponse('ok') def test(request): """添加Book数据""" author = models.Author.objects.filter(name='wangjiawei')[0] models.Book.objects.create(namebook='python', nametype='study', author=author) author = models.Author.objects.filter(name='zouqingxv')[0] models.Book.objects.create(namebook='C', nametype='study', author=author) author = models.Author.objects.filter(name='sujiale')[0] models.Book.objects.create(namebook='java', nametype='study', author=author) author = models.Author.objects.filter(name='lixiangshuai')[0] models.Book.objects.create(namebook='C#', nametype='study', author=author) author = models.Author.objects.filter(name='wangjiawei')[0] models.Book.objects.create(namebook='C++', nametype='study', author=author) author = models.Author.objects.filter(name='wangjiawei')[0] models.Book.objects.create(namebook='STM32', nametype='study', author=author) author = models.Author.objects.filter(name='zouqingxv')[0] models.Book.objects.create(namebook='jQuery', nametype='study', author=author) author = models.Author.objects.filter(name='sujiale')[0] models.Book.objects.create(namebook='JavaScript', nametype='study', author=author) author = models.Author.objects.filter(name='lixiangshuai')[0] models.Book.objects.create(namebook='树莓派', nametype='study', author=author) author = models.Author.objects.filter(name='wangjiawei')[0] models.Book.objects.create(namebook='单片机', nametype='study', author=author) author = models.Author.objects.filter(name='wangjiawei')[0] models.Book.objects.create(namebook='白雪公主', nametype='play', author=author) author = models.Author.objects.filter(name='zouqingxv')[0] models.Book.objects.create(namebook='大力水手', nametype='play', author=author) author = models.Author.objects.filter(name='sujiale')[0] models.Book.objects.create(namebook='灰太狼', nametype='play', author=author) author = models.Author.objects.filter(name='lixiangshuai')[0] models.Book.objects.create(namebook='水浒传', nametype='play', author=author) author = models.Author.objects.filter(name='wangjiawei')[0] models.Book.objects.create(namebook='上下五千年', nametype='play', author=author) author = models.Author.objects.filter(name='wangjiawei')[0] models.Book.objects.create(namebook='红猫传', nametype='play', author=author) author = models.Author.objects.filter(name='zouqingxv')[0] models.Book.objects.create(namebook='神厨小福贵', nametype='play', author=author) author = models.Author.objects.filter(name='sujiale')[0] models.Book.objects.create(namebook='中华小当家', nametype='play', author=author) author = models.Author.objects.filter(name='lixiangshuai')[0] models.Book.objects.create(namebook='哆啦A梦', nametype='play', author=author) author = models.Author.objects.filter(name='wangjiawei')[0] models.Book.objects.create(namebook='西游记', nametype='play', author=author) return HttpResponse('ok') def select(request): """查询""" # 正向查询 obj = models.Book.objects.filter(namebook='python')[0] print(obj.author.name) # 连级查询 obj = models.Book.objects.values('namebook', 'author__name')[0] print(obj['namebook'] + "++++" + obj['author__name']) # 反向查询 obj = models.Author.objects.filter(name='lixiangshuai')[0] list = obj.book_set.all().values('namebook') print(list) for item in list: print(item['namebook']) return HttpResponse('ok') def adds(request): """添加学生老师""" models.Teacher.objects.create(name='zhangjiiong', sex='nan') return HttpResponse('ok~!') def adds(request): """多对多 添加老师""" models.Teacher.objects.create(name='wangliangliang', sex='nan') models.Teacher.objects.create(name='chufengqin', sex='nan') models.Teacher.objects.create(name='wangli', sex='nv') models.Teacher.objects.create(name='liuqin', sex='nv') models.Teacher.objects.create(name='zhouqian', sex='nv') return HttpResponse('ok~!') def addt(request): """多对多,添加学生""" models.Student.objects.create(name='wangjiawei',sex='nan') models.Student.objects.create(name='gaochengliang', sex='nan') models.Student.objects.create(name='sujiale', sex='nan') models.Student.objects.create(name='zouqingxv', sex='nan') models.Student.objects.create(name='gaoxin', sex='nv') models.Student.objects.create(name='guanhaiyu', sex='nv') return HttpResponse('ok!!') def stot(request): """学生与老师相关联""" # t1 = models.Teacher.objects.filter(name='wangli')[0] # print(t1.name) # s=models.Student.objects.get(name='wangjiawei') # s.teacher.add(t1) models.Student.objects.filter(name='sujiale')[0].teacher.add(models.Teacher.objects.get(name='zhangjiong')) models.Student.objects.filter(name='sujiale')[0].teacher.add(models.Teacher.objects.get(name='wangli')) models.Student.objects.filter(name='gaoxin')[0].teacher.add(models.Teacher.objects.get(name='wangli')) models.Student.objects.filter(name='gaoxin')[0].teacher.add(models.Teacher.objects.get(name='zhouqian')) models.Student.objects.filter(name='guanhaiyu')[0].teacher.add(models.Teacher.objects.get(name='wangliangliang')) # t=models.Teacher.objects.filter(name='chufengqin')[0] # print(t.name) return HttpResponse('ok!') def selects(request): # 反向查询 t= models.Teacher.objects.get(name='zhangjiong') s=t.student_set.all() for i in s: print(i.name) # 正向查询 s=models.Student.objects.filter(name='wangjiawei')[0] t=s.teacher.all() for i in t: print(i.name) return HttpResponse('查询完成!')
【版权声明】本博文著作权归作者所有,任何形式的转载都请联系作者获取授权并注明出处!
【重要说明】博文仅作为本人的学习记录,论点和观点仅代表个人而不代表技术的真理,目的是自我学习和有幸成为可以向他人分享的经验,因此有错误会虚心接受改正,但不代表此刻博文无误!
【博客园地址】叫我+V : http://www.cnblogs.com/wjw1014
【CSDN地址】叫我+V : https://wjw1014.blog.csdn.net/
【Gitee地址】叫我+V :https://gitee.com/wjw1014
【重要说明】博文仅作为本人的学习记录,论点和观点仅代表个人而不代表技术的真理,目的是自我学习和有幸成为可以向他人分享的经验,因此有错误会虚心接受改正,但不代表此刻博文无误!
【博客园地址】叫我+V : http://www.cnblogs.com/wjw1014
【CSDN地址】叫我+V : https://wjw1014.blog.csdn.net/
【Gitee地址】叫我+V :https://gitee.com/wjw1014
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!