数据库操作¶
创建一个名为User的app¶
python manage.py startapp User
模型层定义¶
# vim User/models.py
from django.db import models
# Create your models here.
class User(models.Model):
name = models.CharField(max_length=32)
age = models.IntegerField()
email = models.EmailField()
配置数据库¶
ophira是项目名, 在settings.py里面修改DATABASES里的内容,这里我们配置为我们的mysql数据库。 数据库的准备和配置这里省略。
# vim alvincmdb/settings.py
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'ophira',
'HOST': 'maxscale.alv.pub',
'USER': 'alvin',
'PASSWORD': 'sophiroth',
'PORT': 4006
}
}
添加App¶
# vim settings.py
INSTALLED_APPS = (
'User',
)
添加到管理员端¶
# vim User/admin.py
from django.contrib import admin
from User.models import *
# Register your models here.
class UserAdmin(admin.ModelAdmin):
list_display = ['name','email']
search_fields = ['age']
admin.site.register(User,UserAdmin)
管理端这里定义的内容在浏览器里 $url/admin 页面可以查看管理。
同步数据库¶
python manage.py validate #检测数据库配置是否有错 旧版本是vilidate,新新版是check
python manage.py makemigrations #创建对应数据库的映射语句
python manage.py syncdb #同步或者映射数据库 如果没有设置后端管理员账号等数据,这个时候会交互设置,用于$url/admin 页面登录。
添加记录¶
第一种方式¶
u = User(name='alvin',age=25,email='alvin.wan@sophiroth.com')
u.save()
然后就保存了,可以通过select * from user_user查询结果确认一下。
第二种方式¶
User.object.create(name='alvin',age=25,email=alvin.wan@sophiroth.com)
查询所有记录¶
all_u = User.objects.all() # 相当于select * from user_user
使用自定义sql查询¶
>>> u = User.objects.raw('select id,name,age from user_user')[0]
>>> print(u.name)
alvin
指定条件查询¶
filter_u = User.objects.filter(name='alvin') # 相当于select * from user_user where name='alvin'
指定唯一条件查询¶
get_u = User.objects.get(id=4) # get的 条件必须为唯一的,通常为主键。
查询结果按指定列排序¶
顺序查询¶
order_u = User.objects.order_by('age') #查询到的结果按照age字段从低到高排序。
倒序查询¶
order_u = User.objects.order_by('-age') #查询到的结果按照age字段从高到低排序。
取最前面N行。(limit)¶
order_u = User.objects.order_by('-age')[:3] #查询到的结果按照age字段高到低排序取最前面三行。
修改数据¶
u = User.objects.get(id=4) #获取一条id=4的数据
u.name="Alvin wan" #修改name为“Alvin Wan”
u.save() #保存生效。
删除数据¶
u = User.objects.get(id=4) #获取一条id=4的数据
u.delete() #删除数据, 不需要保存,直接删除。
添加字段¶
在我们要添加新字段的app的 models.py 文件中添加需要新增的字段
添加字段到models.py¶
这里我们编辑指定应用下的用于定义表的models.py文件,在一个表下面添加一个comment字段。
$ vi models.py
comment = models.TextField(null=True) #备注
执行makemigrations¶
在工程目录打开命令行窗口输入python manage.py makemigrations apps, 这里的apps,就是我们的应用的名字,实际应用是什么名字这里就写什么名字。
python manage.py makemigrations apps
执行之后,会看到提示 Add field comment to securitypolicy,表示我们的字段已经添加完成。