码迷,mamicode.com
首页 > 其他好文 > 详细

django model操作

时间:2017-02-11 23:53:36      阅读:417      评论:0      收藏:0      [点我收藏+]

标签:contains   blog   创建   template   article   rom   bsp   操作   roo   

 

1,

./manage.py  shell #进入的是django的BaseDir

 

2,

STATICFILES_DIRS=[
    os.path.join(BASE_DIR,static),
]

 

DATABASES = {
    default: {
        ENGINE: django.db.backends.mysql,
        NAME: testdjango,
        USER: root,
        PASSWORD: 123456,
        HOST:127.0.0.1,
    }
}
TEMPLATES = [
    {
        BACKEND: django.template.backends.django.DjangoTemplates,
        DIRS: [os.path.join(BASE_DIR, templates)]
        ,

 

 

 

1.获取

all #返回的是查询集

get #返回是直接结果,不需要变量

filter #可根据正则获取 返回的是查询集

 

p=Article()

p.get()

等价于

Article.objects.get()

 

2,

条件匹配出后删除

delete

 

3,创建

3.1

title=request.POST.get(‘title‘)

 

from .models import Article

p=Article()

p=Article.title=title

p.save()

 

3.2

p=UserMessage(name=‘gg‘,email=‘iher@foxmail.com‘,address=‘futian‘,message=‘hello shawei‘)

 

 

 

 

 

新建一个对象的方法有以下几种:

 

Person.objects.create(name=name,age=age)

 

p = Person(name="WZ", age=23)

 

p.save()

 

p = Person(name="TWZ")

 

p.age = 23

 

p.save()

 

Person.objects.get_or_create(name="WZT", age=23)

 

这种方法是防止重复很好的方法,但是速度要相对慢些,返回一个元组,第一个为Person对象,第二个为True或False, 新建时返回的是True, 已经存在时返回False.

 

 

 

获取对象有以下方法:

 

Person.objects.all()

 

Person.objects.all()[:10] 切片操作,获取10个人,不支持负索引,切片可以节约内存

 

Person.objects.get(name=name)

 

 

 

get是用来获取一个对象的,如果需要获取满足条件的一些人,就要用到filter

 

Person.objects.filter(name="abc") # 等于Person.objects.filter(name__exact="abc") 名称严格等于 "abc" 的人

 

Person.objects.filter(name__iexact="abc") # 名称为 abc 但是不区分大小写,可以找到 ABC, Abc, aBC,这些都符合条件

 

 

 

Person.objects.filter(name__contains="abc") # 名称中包含 "abc"的人

 

Person.objects.filter(name__icontains="abc") #名称中包含 "abc",且abc不区分大小写

 

 

 

Person.objects.filter(name__regex="^abc") # 正则表达式查询

 

Person.objects.filter(name__iregex="^abc")# 正则表达式不区分大小写

 

 

 

filter是找出满足条件的,当然也有排除符合某条件的

 

Person.objects.exclude(name__contains="WZ") # 排除包含 WZ 的Person对象

 

Person.objects.filter(name__contains="abc").exclude(age=23) # 找出名称含有abc, 但是排除年龄是23岁的

django model操作

标签:contains   blog   创建   template   article   rom   bsp   操作   roo   

原文地址:http://www.cnblogs.com/iiiiher/p/6390173.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!