本文实例讲述了Django框架使用mysql视图操作。分享给大家供大家参考,具体如下:
一.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)
-
执行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'
-
注:这里的 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)
-

代码示例:
https://git.coding.net/kylecloud/testmysqlview.git
https://github.com/584807419/testmysqlview
希望本文所述对大家基于Django框架的Python程序设计有所帮助。