本文实例讲述了django框架使用mysql视图操作。分享给大家供大家参考,具体如下:
一.mysql视图的创建
mysql中,在两个或者以上的基本表上创建视图,例如:在studentorm表和infoorm表上,创建mysql_view_test_orm视图
1.首先,创建两张表
1
2
3
4
5
6
7
8
|
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,该文件的代码如下:
1
2
3
4
5
6
7
8
|
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()
1
2
3
4
5
6
7
8
9
10
11
|
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程序设计有所帮助。
原文链接:https://blog.csdn.net/u013205877/article/details/80004514