赞
踩
MySQL中,在两个或者以上的基本表上创建视图,例如:在StudentOrm表和InfoOrm表上,创建mysql_view_test_orm视图
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,然后添加数据
Navicat有工具,语句略
通过Django的ORM来控制视图
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新建的视图的名字相同才行!
此时在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)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。