博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Django 数据库查询
阅读量:6907 次
发布时间:2019-06-27

本文共 5341 字,大约阅读时间需要 17 分钟。

 

 

 

birthday__year=2006 headline__startswith='What' 等价于 headline__startswith like 'What%'headline__endswith='What' 等价于 headline__startswith like '%What'birthday__gte=datetime.now() 等价于 birthday__gte >= datetime.now()birthday__lte=datetime.now() 等价于 birthday__gte <= datetime.now()pk__gt=14 等价于 pk>14name__icontains="food" 等价于 name like "%food%"headline__exact="Man bites dog" 等价于 headline = 'Man bites dog';name__iexact="beatles blog" 查找name="beatles blog"的对象,不区分大小写name__isnull=True 查询的是name为null的值pk__in=[1,4,7] 等价于 id in{1,4,7} 一对多many端e = Entry.objects.get(id=2) print e.blogone端b = Blog.objects.get(id=1)b.entry_set.all()b.entry_set.count()

 

 

 

#!/usr/bin/python#coding:utf-8from django.shortcuts import render;from django.shortcuts import render_to_response;from django.http import HttpResponse;from django.template import loader,Context, Template;from django.http import HttpResponseRedirect;from django.views.decorators.csrf import csrf_exempt;import time, datetime;from django.db import connection,transaction;from blog.models import Blog;from blog.models import Entry;from blog.models import Author;from blog.models import AuthorBlog;def saveBlog(request):    try:        blog=Blog();        blog.name="python";        blog.tagline="Python是一种解释型、面向对象、动态数据类型的高级程序设计语言。自从20世纪90年代初Python语言诞生至今,它逐渐被广泛应用于处理系统管理任务和Web编程。";        blog.save();        return HttpResponse("save blog success");    except BaseException, e:        return HttpResponse("save blog failure:"+e);        def updateBlog(request):    try:        blog=Blog.objects.get(id=4);        blog.tagline="Python是一种解释型、面向对象、动态数据类型的高级程序设计语言。";        blog.save();        return HttpResponse("update blog success");    except BaseException, e:        return HttpResponse("update blog failure:"+e);def delBlog(request):    try:        blog=Blog.objects.get(id=4);        #blog.delete();        return HttpResponse("delete blog success");    except BaseException, e:        return HttpResponse("delete blog failure:"+e);###一对多添加###def saveEntry(request):    try:        blog=Blog.objects.get(id=4); #python        entry=Entry();           entry.headline="django";        entry.body_text="Django是一个开放源代码的Web应用框架,由Python写成。";        entry.pub_date=datetime.date.today();        entry.blog=blog;        entry.save();        return HttpResponse("save entry success");    except BaseException, e:        return HttpResponse("save entry failure:"+e);###多对多添加###def saveAuthorBlog(request):    try:        author=Author.objects.get(id=1);        blog=Blog.objects.get(id=4);        ab=AuthorBlog();        ab.author=author;        ab.blog=blog;        ab.created_at=datetime.date.today();        ab.save();        return HttpResponse("save AuthorBlog success");    except BaseException, e:        return HttpResponse("save AuthorBlog failure:"+e);      def queryBlog(request):    #检索所有的对象    blogs = Blog.objects.all();    for blog in blogs:        print blog.name;    print "=======";        #多对一查询    entrys=Entry.objects.all();    for entry in entrys:        print entry.headline+", "+entry.blog.id+", "+entry.blog.name;    print "=======";        return HttpResponse("queryBlog");    ###执行原生查询并返回模型实例###def rawBlog(request):    raw_sql = 'select * from blog_Blog';    blogs=Blog.objects.raw(raw_sql); #xx.objects.raw()执行原始sql    print blogs;    for blog in blogs:        print blog.name;    print "======";        raw_sql = 'select * from blog_Blog o where o.name=%s'; #带参数    blogs=Blog.objects.raw(raw_sql, ["j2ee"]); #xx.objects.raw()执行原始sql    print blogs;    for blog in blogs:        print blog.name;    return HttpResponse("rawBlog");    def sqlBlog(request):    cursor=connection.cursor(); #获得一个游标(cursor)对象        #更新操作    cursor.execute('update blog_Blog set name="hadoop168" where id=%s', [1]); #执行sql语句    transaction.commit_unless_managed(); #提交到数据库        #查询操作    cursor.execute('select * from blog_Blog where id=%s', [1]);    blogs = cursor.fetchone(); #或使用 #raw = cursor.fetchall();返回的结果集是个元组    for blog in blogs:        print blog;    print "======";        cursor.execute('select * from blog_Blog');    blogs = cursor.fetchall(); #返回的结果集是个元组    for blog in list(blogs):        print str(blog[0])+", "+blog[1]+", "+blog[2];    print "======";        return HttpResponse("sqlBlog");def querySqlBlog(request):    sql="select b.name as blog_name, e.headline from blog_Blog b, blog_Entry e where b.id=e.blog_id";    cursor=connection.cursor(); #获得一个游标(cursor)对象    cursor.execute(sql);    blogs = cursor.fetchall(); #返回的结果集是个元组        records=[]    for blog in blogs:        dic={}        dic['blog_name']=blog[0]        dic['headline']=blog[1]        records.append(dic);        for record in records:        print record["blog_name"]+", "+record["headline"];    return HttpResponse("sqlBlog");    def searchBlog(request):    #检索所有的对象    #blogs = Blog.objects.all(); #使用all()方法返回数据库中的所有对象        #检索特定的对象,使用以下两种方法:     #fileter()  返回一个与参数匹配的QuerySet,相当于等于(=)    #exclude()  返回一个与参数不匹配的QuerySet,相当于不等于(!=)        #blogs=Blog.objects.filter(name='python'); 等同于:slect * from blog_Blog where name='python'     #不使用Blog.objects.all().filter(name='python'),虽然也能运行,all()最好再获取所有的对象时使用。     blogs=Blog.objects.filter(name='python');    for blog in list(blogs):        print str(blog.id)+", "+blog.name+", "+blog.tagline;    print "======";        return HttpResponse("searchBlog");

 

转载地址:http://uerdl.baihongyu.com/

你可能感兴趣的文章
C#向excel中写入数据的三种方式
查看>>
Python条件判断
查看>>
JavaScript学习总结(1)——JavaScript基础
查看>>
Java Web学习总结(12)——使用Session防止表单重复提交
查看>>
FMDB 使用方法
查看>>
Chrome NativeClient创建 (转)
查看>>
silverlight ItemTemplate和ItemPanel实例
查看>>
使用request.js代理post失败的问题
查看>>
Fiddler如何模拟弱网环境进行测试
查看>>
简单介绍数据流动的控制
查看>>
GYM 101502I. Move Between Numbers
查看>>
Win10无法启动软件提示MSVCP110.dll丢失
查看>>
面向切面和面向对象的关系
查看>>
hdu 2032 杨辉三角
查看>>
Centos7安装python3和pip3
查看>>
spring集合类型注入
查看>>
EnumMap 两种使用方式的比较
查看>>
smarty课程---smarty3的安装和使用
查看>>
m_Orchestrate learning system---mo系统权限思考(如何实现以及注意什么)
查看>>
Dcloud课程8 开心一刻应用如何实现
查看>>