首页 > 代码库 > Django笔记-模型(二)

Django笔记-模型(二)

新建project步骤省略,具体可参照http://5007260.blog.51cto.com/4997260/1310954

1、基础篇

cd /app/shenpi
python manage.py startapp #data 模型需要建一个独立的app
python manage.py validate #检测model.py是否存在语法错误
python manage.py sqlall data #(存放model.py app名字)
python manage.py syncdb#真正建表的动作
python manage.py dbshell#这个命令将依据`` DATABASE_SERVER`` 的里设置自动检测使用哪种命令行客户端直接进入数据库会话

#module.py
from django.db import models
class Publisher(models.Model):
    name = models.CharField(max_length=30)
    address = models.CharField(max_length=50)
    city = models.CharField(max_length=60)
    state_province = models.CharField(max_length=30)
    country = models.CharField(max_length=50)
    website = models.URLField()
    **def __unicode__(self):**
        **return self.name**
class Author(models.Model):
    first_name = models.CharField(max_length=30)
    last_name = models.CharField(max_length=40)
    email = models.EmailField()
    **def __unicode__(self):**
        **return u‘%s %s‘ % (self.first_name, self.last_name)**
class Book(models.Model):
    title = models.CharField(max_length=100)
    authors = models.ManyToManyField(Author)
    publisher = models.ForeignKey(Publisher)
    publication_date = models.DateField()
    **def __unicode__(self):**
        **return self.title**
#查询数据
Publisher.objects.all() #取出模型中Publisher表所有数据
Publisher.objects.order_by("name")#order by 用法,字段前加-name 逆序
Publisher.objects.filter(name=‘Apress‘)#字段where name=‘Apress‘的数据
Publisher.objects.filter(country="U.S.A.", state_province="CA")#多where条件查询
Publisher.objects.filter(name__contains="press")#contains部分会被Django翻译成LIKE语句,等价于下面sql语句
Publisher.objects.order_by(‘name‘)[0]#limit 1用法,
#get/filter比较
#filter()函数返回一个记录集,这个记录集是一个列表。get()获取单个的对象

#插入数据
p = Publisher(name=‘Apress‘,
... address=‘2855 Telegraph Ave.‘,
... city=‘Berkeley‘,
... state_province=‘CA‘,
... country=‘U.S.A.‘,
... website=‘
p.save() 

#更新数据
Publisher.objects.filter(id=52).update(name=‘Apress Publishing‘)
Publisher.objects.all().update(country=‘USA‘)

#删除数据
Publisher.objects.filter(country=‘USA‘).delete()


2、高级篇

#待续



Django笔记-模型(二)