如何在命令行下调试Django的查询语句

来源:互联网 发布:下载隐藏软件 编辑:程序博客网 时间:2024/06/05 04:51

先构建两个对象

class AreaProvince(models.Model):ID=models.IntegerField(primary_key=True)Province=models.CharField(max_length=10)def __unicode__(self):return self.Province
class AreaCity(models.Model):ID=models.IntegerField(primary_key=True)Province=models.ForeignKey('AreaProvince')City=models.CharField(max_length=5)def __unicode__(self):return self.City


根据对象生成数据表,运行

manage.py syncdb


进入python命令行进行测试,运行

manage.py shell


引入

>>>from auth.models import  AreaProvince

>>>from auth.models import AreaCity

注意大小写,django对大小写敏感,另外auth.models是因为我把上面两个对象放在Auth目录里形成一个功能包。


添加一条记录

>>>r=AreaProvince(Province='Henan')

>>>r.save()


把查询语句打印出来

>>>r=AreaProvince.objects.all()

>>>r.query.as_sql()

('SELECT `auth_areaprovince`.`ID`, `auth_areaprovince`.`Province` FROM `auth_areaprovince`', ())


也可以把列表内容打印出来

>>>for a in r:

. . .    print a.ID,a.Province

. . .

注意,第一行结尾有冒号,第二行要缩进4个字符,否则报错。


原创粉丝点击