Django 之 查看执行的sql语句
前提:
我的app名称为core,models.py内容如下:
# coding:utf-8
from django.db import models # Create your models here.
class Province(models.Model):
name = models.CharField(u'省份名称',max_length=32)
code = models.IntegerField(verbose_name=u'区号', unique=True) def __unicode__(self):
return self.name class Meta:
verbose_name = u'省份列表'
verbose_name_plural = u'省份列表'
法I:
>>> from core.models import Province
>>> print Province.objects.all().query
SELECT `core_province`.`id`, `core_province`.`name`, `core_province`.`code` FROM `core_province`
该方法只能查看select语句,对于其他更新保存的语句不能查看,会报错。
>>> from core.models import Province
>>> p = Province(name=u'广州', code='')
>>> p.save().query
Traceback (most recent call last):
File "<console>", line 1, in <module>
AttributeError: 'NoneType' object has no attribute 'query'
>>> p.save()
也就是说只有 Queryset 有query方法。
法II:
>>> from core.models import Province
>>> from django.db import connection
>>> p = Province(name=u'河南', code='')
>>> p.save()
>>> print connection.queries
[{u'time': u'0.439', u'sql': u"INSERT INTO `core_province` (`name`, `code`) VALUES ('\u5e7f\u5dde', 20)"},
{u'time': u'0.056', u'sql': u"UPDATE `core_province` SET `name` = '\u5e7f\u5dde', `code` = 20 WHERE `core_province`.`id` = 3 "},
{u'time': u'0.102', u'sql': u"INSERT INTO `core_province` (`name`, `code`) VALUES ('\u6cb3\u5357', 371)"}]
该方法会打印出所有执行过的sql语句,包括我在实验方法I时所执行的两个p.save()(第一个save()为INSERT,第二个save()为UPDATE)也都打印出来了。
Django 之 查看执行的sql语句的更多相关文章
- django框架 - 实时查看执行的sql语句
django框架采用的ORM模型,我们可以通过mysql的日志记录实时看到执行的sql语句,具体步骤如下: 第一步:找到mysql的配置文件 第二步:编辑mysql配置文件 第三步:重启mysql 第 ...
- Python Django 之 直接执行自定义SQL语句(一)
一.执行自定义SQL方法 1.Executing custom SQL directly 直接执行自定义SQL,这种方式可以完全避免数据模型,而是直接执行原始的SQL语句. 2.Manage ...
- Django之ORM执行原生sql语句
django中的ORM提供的操作功能有限,在模型提供的查询API不能满足实际工作需要时,可以在ORM中直接执行原生sql语句. Django 提供两种方法使用原生SQL进行查询:一种是使用raw()方 ...
- Python Django 之 直接执行自定义SQL语句(二)
转载自:https://my.oschina.net/liuyuantao/blog/712189 一般来说,最好用 Django 自带的模型来实现这些操作.这里仅仅只是为了学习使用原始 SQL 而做 ...
- 在django中,执行原始sql语句
extra()方法 结果集修改器,一种提供额外查询参数的机制 使用extra: 1:Book.objects.filter(publisher__name='广东人员出版社').extra(where ...
- laravel查看执行的sql语句
方法一: 我们有时候想测试一段代码生产的 SQL 语句,比如: 我们想看 App\User::all(); 产生的 SQL 语句,我们简单在 routes.php 做个实验即可: //app/Http ...
- python学习-- 在django中,执行原始sql语句
from django.shortcuts import render, redirect from news.models import Article, Column def test(reque ...
- MySql使用show processlist查看正在执行的Sql语句
今天上班例行的查看了下服务器的运行状况,发现服务器特卡,是mysqld这个进程占用CPU到了99%导致的. 比较好奇是那个程序在使用mysql导致cpu这么高的,通过show processlist命 ...
- mysql查看正在执行的sql语句
有2个方法: 1.使用processlist,但是有个弊端,就是只能查看正在执行的sql语句,对应历史记录,查看不到.好处是不用设置,不会保存. -- use information_schema; ...
随机推荐
- public/private/protected访问控制权限的区别
//public/private/protected访问控制权限的区别//时间:2016/8/16 //(一)修饰成员: //public: 在类内.类外都能使用 . //protected: 在类内 ...
- asdddddddddddddddd
<a href="www.baidu.com">sad</a>
- 将内存ffff:0~ffff:b中的数据拷贝到0:200~0:20b中
我是按照字,也就是2个字节拷贝的. 这样就可以让循环减半== assume cs:sad sad segment start: mov ax, 0ffffh mov ds, ax mov bx, 0h ...
- UVa 12118 检查员的难题(dfs+欧拉回路)
https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem& ...
- Git远程仓库(github
一.创建远程仓库(github) 首先到https://github.com注册一个账号,创建自己的Git,点击repositories,再点new 名字自定义,比如叫fansik,选择public点 ...
- underscore.extend.js
/** * 基于underscore的扩展 * @module lib/underscoreExtend */ (function() { // 全局可能用到的变量 var arr = []; var ...
- rsync+inotify实现自动备份
1.rsync命令 文件在不同服务器之间备份,有两种方式,一种是推,另一种是拉 推:即由主服务器推送数据到次服务器 拉:即由次服务器向主服务器要数据 一般采用拉的方式 但是这样同时多服务器备份就会分享 ...
- 利用html5的localStorage做一个备忘录
实现一个便签功能,可以记录内容和写的时间,当网页从新载入,可以读取以前的记录. html文档 <!DOCTYPE html> <html> <head lang=&quo ...
- MyFirstgame 拼图
package auto; /** * IDA*求解15puzzle问题 * IDA*整合了IDDFS和A*算法.其中IDDFS控制了求解过程中的内存开销,A*算法意味着"启发式" ...
- SqlServer阅读收集
1.根据字段名,查找相关表--INFORMATION_SCHEMA.COLUMNS SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE COLUMN_NAME ...