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('查询完成!')

 

posted @ 2018-03-27 10:52  我是+V  阅读(229)  评论(0编辑  收藏  举报