当前位置:   article > 正文

Django使用mysql视图_django数据库视图

django数据库视图

一.Mysql视图的创建

MySQL中,在两个或者以上的基本表上创建视图,例如:在StudentOrm表和InfoOrm表上,创建mysql_view_test_orm视图

1.首先,创建两张表

 from django.db import models

# Create your models here.

class StudentOrm(models.Model):
    name = models.CharField(max_length=50)
    sex = models.CharField(max_length=50)

class InfoOrm(models.Model):
    classname = models.CharField(max_length=50)
    addr = models.CharField(max_length=50)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

执行makemigrations, migrate,然后添加数据

2. 创建mysql_view_test_orm视图

Navicat有工具,语句略
这里写图片描述

3. 查看视图

这里写图片描述

二.Django中使用Mysql视图

通过Django的ORM来控制视图

1. 创建视图相关py文件

models.py相同的目录下新建一个.py文件,例如mysql_view_models.py,该文件的代码如下:

from .models import *

class StudentinfoInfoOrm(models.Model):
    name = models.CharField(max_length=50)
    sex = models.CharField(max_length=50)
    classname = models.CharField(max_length=50)
    addr = models.CharField(max_length=50)

    class Meta:
        db_table = 'mysql_view_test_orm'
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

注:这里的 db_table 要和mysql新建的视图的名字相同才行!

2. 视图查询

此时在views中就能正常使用django提供的数据库操作的方法了,即
StudentinfoInfoOrm.objects.all()

 from django.shortcuts import render

# Create your views here.
from django.http import HttpResponse
from .mysql_view_models import StudentinfoInfoOrm
from django.core import serializers

def mysql_view_test(request):
    tempa = StudentinfoInfoOrm.objects.all()
    # tempa = StudentinfoInfoOrm.objects.filter(name="zhangkun")
    # tempa = StudentinfoInfoOrm.objects.filter(name="lc")
    data = serializers.serialize("json", tempa)
    return HttpResponse(data)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

这里写图片描述

代码示例:
https://git.coding.net/kylecloud/testmysqlview.git

https://github.com/584807419/testmysqlview

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号