原文:http://www.djangobook.com/en/2.0/chapter05.html
python 1.6.5已验证:
纪要:
1. 使用 python manage.py startapp 模块名 来创建模块(应用),模块具有可复用性)
2. 模型(model)必须要在模块(app)中
模型的定义,至少需要定义字段。 通常还需要定义 __unicode__方法,用于提供记录的说明。
3. 模型到数据库的映射:
python manage.py validate (检查模型是否有语法错误)
python manage.py sqlall 模块(将模型转化为sql语句)
python manage.py syncdb (将模型同步到数据库)
4. 数据库的配置(setting.py)
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.', # Add 'postgresql_psycopg2', 'mysql', 'sqlite3' or 'oracle'. 'NAME': '', # Or path to database file if using sqlite3. 'USER': '', # Not used with sqlite3. 'PASSWORD': '', # Not used with sqlite3. 'HOST': '', # Set to empty string for localhost. Not used with sqlite3. 'PORT': '', # Set to empty string for default. Not used with sqlite3. } }
注意mysql的配置有点特殊,
'HOST': '/var/run/mysql',
5. 模型api(继承自 django.db.models.Model)
select:
1). 模型类.objects.all()
2). 模型类.objects.filter(字段[__操作] = ’目标字符串'),其中 [__操作]是可选的,操作包括这些值:contains,icontains,startswith,endswith,range
create : 模型实例.save()
delete:
1). 模型实例.delete()
2).QuerySet.delete() , eg. 模型类.objects.all().delete() / 模型类.objects.filter(过滤条件).delete()
update:
1). 先得到模型实例,然后save(更新所有字段)
2). 基于queryset操作(只更新目标字段)
模型类.objects.all().update(字段=新值)
排序:
1) 模型类.objects.order_by(字段) ,默认升序排序,若要降序则用:模型类.objects.order_by(-字段), 即在字段前面加中划线。
2) 添加Meta的内部类,并指定ordering属性(eg. ordering='字段')
排序后的切片(不支持负数,即逆向定位)
转载请注明来自:http://blog.csdn.net/lion_awake/article/details/37759173
谢谢