#!/usr/bin/python
#coding:utf-8 from 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");

Django 数据库查询的更多相关文章

  1. Django 数据库查询集合(多对多)

    Django 数据库查询集合(双下划线连表操作) 目录: 1.Django环境搭建 2.数据库建表 3.写入数据 4.查询语句 Django环境搭建 1.安装django pip install dj ...

  2. Django 数据库查询集合(双下划线连表操作)

    Django是一款优秀的web框架,有着自己的ORM数据库模型.在项目中一直使用django数据库,写一篇文章专门记录一下数据库操作.略写django工程创建过程,详写查询过程.可以和sqlalche ...

  3. django 数据库查询的几个知识点

    django查询db过程中遇到的几个问题: 1. 数据库切换,用using products = models.TProductCredit.objects.using(') 2.查询结构集是Quer ...

  4. django 数据库查询 ORM

    实用的logging模块: zaisetting配置中加入下列配置,将sql语句打印到屏幕上,可以进行查看. LOGGING = { 'version': 1, 'disable_existing_l ...

  5. Python中的Django框架中prefetch_related()函数对数据库查询的优化

    实例的背景说明 假定一个个人信息系统,需要记录系统中各个人的故乡.居住地.以及到过的城市.数据库设计如下: Models.py 内容如下: ? 1 2 3 4 5 6 7 8 9 10 11 12 1 ...

  6. Django实战总结 - 快速开发一个数据库查询工具

    一.简介 Django 是一个开放源代码的 Web 应用框架,由 Python 写成. Django 只要很少的代码就可以轻松地完成一个正式网站所需要的大部分内容,并进一步开发出全功能的 Web 服务 ...

  7. Django【进阶】数据库查询性能相关

    之前项目中没有考虑过数据库查询关于效率的问题,如果请求量大,数据庞大,不考虑性能的话肯定不行.     tips:如图之前我们遇到过,当添加一张表时,作为原来表的外键,要给个默认值,现在我们写null ...

  8. Python之路【第十九章】:Django 数据库对象关系映射

    Django ORM基本配置 到目前为止,当我们的程序涉及到数据库相关操作时,我们一般都会这么搞: 创建数据库,设计表结构和字段 使用 MySQLdb 来连接数据库,并编写数据访问层代码 业务逻辑层去 ...

  9. Django 源码小剖: Django ORM 查询管理器

    ORM 查询管理器 对于 ORM 定义: 对象关系映射, Object Relational Mapping, ORM, 是一种程序设计技术,用于实现面向对象编程语言里不同类型系统的数据之间的转换.从 ...

随机推荐

  1. "javascript:void(0)"用法

    1.window.open(''url'') 2.用自定义函数 <script> function openWin(tag,obj) { obj.target="_blank&q ...

  2. OC - 10.使用Quartz2D绘制个性头像

      效果图 将一张图片剪切成圆形 在图片周围显示指定宽度和颜色的边框 实现思路 效果图中主要由不同尺寸的两大部分组成 蓝色的背景区域,尺寸等于图片的尺寸加上边框的尺寸 图片区域,尺寸等于图片的尺寸 绘 ...

  3. 【USACO 1.3.1】混合牛奶

    [题目描述] 由于乳制品产业利润很低,所以降低原材料(牛奶)价格就变得十分重要.帮助梅丽乳业找到最优的牛奶采购方案. 梅丽乳业从一些奶农手中采购牛奶,并且每一位奶农为乳制品加工企业提供的价格是不同的. ...

  4. 二分查找里的upper bound与lower bound的实现与分析

    1. 问题引入 最近参选了学堂在线的课程数据结构(2015秋).课程由清华大学的邓俊辉老师主讲,在完成课后作业时,遇到了这样一个题目范围查询.在这个题目中,我需要解决这样一个子问题:给定了一组已经排好 ...

  5. Spring4.0学习笔记(9) —— Spring泛型依赖注入

    1.定义基础仓库 package com.spring.generic.di; public class BaseRepository<T> { } 2.定义基础服务层 package c ...

  6. Extjs之combobox联动

    Ext.Loader.setConfig({ enabled : true }); Ext.Loader.setPath('Ext.ux', '../extjs/ux'); Ext.require([ ...

  7. MySql存储过程—3、变量

    1.变量的定义 在Mysql里面可以像我们写代码中一样定义变量来保持中间结果,看下面的格式: DECLARE variable_name datatype(size) DEFAULT default_ ...

  8. 一个测ip和端口是否联通的工具类

    public class TestIp { public static void main(String[] args) { Socket connect = new Socket(); try { ...

  9. Tomcat基础教程(一)

    Tomcat, 是Servlet和JSP容器,其是实现了JSP规范的servlet容器.它在servlet生命周期内包容,装载,运行,和停止servlet容器. Servlet容器的三种工作模式: 1 ...

  10. Linux Makefile多目录的编写

    手头一个项目,需要编写项目的makefile 多目录结构: csource/ ├── common│   └── sqlite3├── inc│   ├── curl│   ├── lua│   └─ ...