Python 操作 mysql数据库的一个小小的基础案例,小白新手,以备后用~~
model.py 中的代码
# Create your models here. # 书和作者一对多
class Author(models.Model):
name = models.CharField(max_length=32)
age = models.IntegerField() class Book(models.Model):
author = models.ForeignKey('Author', on_delete=models.CASCADE)
namebook = models.CharField(max_length=32)
nametype = models.CharField(max_length=32) # 学生和老师多对多 class Teacher(models.Model):
name = models.CharField(max_length=32)
sex = models.CharField(max_length=32) class Student(models.Model):
name = models.CharField(max_length=32)
sex = models.CharField(max_length=32)
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': '',
'HOST': '127.0.0.1',
'PORT': '',
}
}
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('查询完成!')
Python 操作 mysql数据库的一个小小的基础案例,小白新手,以备后用~~的更多相关文章
- python操作mysql数据库读取一个数据库的表写入另一个数据库
写这个肯定是工作需要了,不啰嗦,直接说事 我现在有两台主机,一台是公司主机,一台是客户主机,要求把公司主机上的三个表同步到客户主机上的数据库 注意是同步,首先就得考虑用linux定时任务或者主从复制, ...
- Windows下安装MySQLdb, Python操作MySQL数据库的增删改查
这里的前提是windows上已经安装了MySQL数据库,且配置完成,能正常建表能操作. 在此基础上仅仅需安装MySQL-python-1.2.4b4.win32-py2.7.exe就ok了.仅仅有1M ...
- 【转】python操作mysql数据库
python操作mysql数据库 Python 标准数据库接口为 Python DB-API,Python DB-API为开发人员提供了数据库应用编程接口. Python 数据库接口支持非常多的数据库 ...
- python接口自动化(三十八)-python操作mysql数据库(详解)
简介 现在的招聘要求对QA人员的要求越来越高,测试的一些基础知识就不必说了,来说测试知识以外的,会不会一门或者多门开发与语言,能不能读懂代码,会不会Linux,会不会搭建测试系统,会不会常用的数据库, ...
- Python 操作MySQL 数据库
Python 操作 MySQL 数据库 Python 标准数据库接口为 Python DB-API,Python DB-API为开发人员提供了数据库应用编程接口. Python 数据库接口支持非常多的 ...
- python操作mysql数据库的常用方法使用详解
python操作mysql数据库 1.环境准备: Linux 安装mysql: apt-get install mysql-server 安装python-mysql模块:apt-get instal ...
- python 操作mysql数据库之模拟购物系统登录及购物
python 操作mysql数据库之模拟购物系统登录及购物,功能包含普通用户.管理员登录,查看商品.购买商品.添加商品,用户充值等. mysql 数据库shop 表结构创建如下: create TAB ...
- python + docker, 实现天气数据 从FTP获取以及持久化(二)-- python操作MySQL数据库
前言 在这一节中,我们主要介绍如何使用python操作MySQL数据库. 准备 MySQL数据库使用的是上一节中的docker容器 “test-mysql”. Python 操作 MySQL 我们使用 ...
- Python操作MySQL数据库9个实用实例
用python连接mysql的时候,需要用的安装版本,源码版本容易有错误提示.下边是打包了32与64版本. MySQL-python-1.2.3.win32-py2.7.exe MySQL-pytho ...
随机推荐
- malloc调用后经历了什么?
进程生成虚拟地址空间,有堆地址,由于是虚拟地址,所以没有做内存碎片化处理,只是在虚拟内存不够的时候调用brk,进行堆大小的调整,然后申请到虚拟内存是页,同MMU映射到物理地址,然后并不是每个页都预先加 ...
- 基于jquery ajax的多文件上传进度条
效果图 前端代码,基于jquery <!DOCTYPE html> <html> <head> <title>主页</title> < ...
- 修改CentOS的IP地址
一.临时修改 命令:ifconfig eth0 192.168.1.147 重启或者关机后,iP地址将会恢复到修改之前的状态. 二.永久修改 命令: vi /etc/sysconfig/network ...
- thrift 安装历程
安装Boost 支持 C++ 编译安装除gcc和gcc-c++之外,还需要两个开发库:bzip2-devel 和python-devel,因此在安装前应该先保证这两个库已经安装:# yum inst ...
- Java编写email实现内容换行
用java编写的发送邮件要使用<br>来实现换行,而不能使用\n,或者\r\n // 5. Content: 邮件正文(可以使用html标签)(内容有广告嫌疑,避免被邮件服务器误认为是滥发 ...
- (已解决)Xcode 换电脑提示 Could not attach to pid:“XXXX”错误
在运行项目时出现了如下错误 (基本上重新启动项目即可) 紧接着再次运行又没有问题了. 稍微查询了一下得知,这个问题并不是由我们的操作引起的,有时就会莫名其妙的出现,但是有一些不同的情况 下面列出如何解 ...
- OEMCC 13.2 集群版本安装部署
之前测试部署过OEMCC 13.2单机,具体可参考之前随笔: OEMCC 13.2 安装部署 当时环境:两台主机,系统RHEL 6.5,分别部署OMS和OMR: OMS,也就是OEMCC的服务端 IP ...
- codeforces 980B Marlin
题意: 有一个城市有4行n列,n是奇数,有一个村庄在(1,1),村民的活动地点是(4,n): 有一个村庄在(4,1),村民的活动地点是(1,n): 现在要修建k个宾馆,不能修建在边界上,问能否给出一种 ...
- XML系列之--解析电文格式的XML(二)
上一节介绍了XML的结构以及如何创建.讲到了XML可作为一种简单文本存储数据,把数据存储起来,以XML的方式进行传递.当接收到XML时,必不可少的就是对其进行解析,捞取有效数据,或者将第三方数据以节点 ...
- c++学习笔记(六)- vector使用和内存分配
-----------------------------2019/01/15------------------------------- 复习了下迭代器,其实c++参考里讲的很清楚,主要需要辨析规 ...