常用django操作

1.Model 例子

from django.db import models

class BlogIndex(models.Model):
    BlogIndex_id = models.AutoField(primary_key=True ,null=False , unique=True)
    BlogIndex_title = models.CharField(max_length=200)

class Blog(models.Model):
    blog_id = models.AutoField(primary_key=True ,null=False , unique=True)
    BlogIndex_id=models.ForeignKey(BlogIndex)
    blog_title = models.CharField(max_length=200)
    blog_text = models.TextField()
    blog_time = models.DateTimeField(auto_now=True)
    blog_popularity = models.IntegerField()
    blog_from_url = models.URLField(max_length=1000)
    ext_1 = models.CharField(max_length=500)
    ext_2 = models.CharField(max_length=500)

2.View 例子

# Create your views here.
from django.http import HttpResponse
from django.template.loader import get_template
from django.template import Context
from django.shortcuts import render_to_response
import os   
from  datetime  import *
from  myweb.models import *
import json

def myWebView(request):  
    return render_to_response('index.html',{'name': 'lines'})

def addBlog(request):
    blogType=request.POST.get('type')
    blogtitle=request.POST.get('title')
    blogtext=request.POST.get('text')
    now=datetime.now()
    bi=BlogIndex.objects.get(BlogIndex_id=blogType)
    BL = Blog(
        BlogIndex_id=bi,
        blog_title=blogtitle,
        blog_text=blogtext,
        blog_time=now,
        blog_popularity=0,
        )
    BL.save();
    return HttpResponse("1")

def getBlog(request):  
    blogID=request.GET.get('id')
    BL=Blog.objects.get(blog_id=blogID)
    return render_to_response('blog.html',{'data': BL.blog_text})

def getTypeList(request):  
    BlogIndex_list = BlogIndex.objects.all()
    data_array=[]
    for obj in BlogIndex_list:
        data = {'BlogIndex_id': obj.BlogIndex_id, 'BlogIndex_title': obj.BlogIndex_title}
        data_array.append(data)
        pass
    return HttpResponse("var listJson ="+json.dumps(data_array))

def getIndex(request):  
    BlogIndex_list = BlogIndex.objects.all()
    data_array=[]
    for obj in BlogIndex_list:
        inner_array=[];
        for obj_inner in Blog.objects.filter(BlogIndex_id = obj.BlogIndex_id):
            d_inner={'BlogIndex_id': obj_inner.blog_id, 'name': obj_inner.blog_title}
            inner_array.append(d_inner)
            pass
        data = {'BlogIndex_id': obj.BlogIndex_id, 'name': obj.BlogIndex_title}
        data_array.append(data)
        pass
    encodedjson = json.dumps(data_array)
    return HttpResponse("var listJson ="+encodedjson)

def addIndex(request):
    typeTitle=request.POST.get('typeTitle')
    if typeTitle: 
        BI = BlogIndex(BlogIndex_title=typeTitle)
        BI.save();
        return HttpResponse(1)
    else:
        return HttpResponse(0)

3.常用的数据库查询条件

class A(models.Model):
    name = models.CharField(u'名称')
  class B(models.Model):
    aa = models.ForeignKey(A)
    B.objects.filter(aa__name__contains='searchtitle')

条件选取querySet的时候,filter表示=,exclude表示!=。
querySet.distinct()  去重复
__exact        精确等于 like 'aaa'
 __iexact    精确等于 忽略大小写 ilike 'aaa'
 __contains    包含 like '%aaa%'
 __icontains    包含 忽略大小写 ilike '%aaa%',但是对于sqlite来说,contains的作用效果等同于icontains。
__gt    大于
__gte    大于等于
__lt    小于
__lte    小于等于
__in     存在于一个list范围内
__startswith   以...开头
__istartswith   以...开头 忽略大小写
__endswith     以...结尾
__iendswith    以...结尾,忽略大小写
__range    在...范围内
__year       日期字段的年份
__month    日期字段的月份
__day        日期字段的日
__isnull=True/False

例子:
>> q1 = Entry.objects.filter(headline__startswith="What")
>> q2 = q1.exclude(pub_date__gte=datetime.date.today())
>> q3 = q1.filter(pub_date__gte=datetime.date.today())
>>> q = q.filter(pub_date__lte=datetime.date.today())
>>> q = q.exclude(body_text__icontains="food")
留言:

称呼:*

邮件:

网站:

内容: