1.模型——SQLite3数据库使用
使用django的数据库必须创建一个app
python manage.py startapp check 创建app
此时manage.py的目录下会多一个check的文件夹,里面有
修改models.py文件
from django.db import models # Create your models here. class usr(models.Model): usr = models.CharField(max_length=10) pwd = models.CharField(max_length=10) class access_key(models.Model): key = models.CharField(max_length=20) expires_time = models.DateTimeField()
说明:usr为数据表名,usr,pwd为字段
在setting.py文件中部分字段修改为:
INSTALLED_APPS = ( # ‘django.contrib.admin‘, # ‘django.contrib.auth‘, # ‘django.contrib.contenttypes‘, # ‘django.contrib.sessions‘, # ‘django.contrib.messages‘, # ‘django.contrib.staticfiles‘, "check", ) MIDDLEWARE_CLASSES = ( # ‘django.contrib.sessions.middleware.SessionMiddleware‘, # ‘django.middleware.common.CommonMiddleware‘, # ‘django.middleware.csrf.CsrfViewMiddleware‘, # ‘django.contrib.auth.middleware.AuthenticationMiddleware‘, # ‘django.contrib.messages.middleware.MessageMiddleware‘, # ‘django.middleware.clickjacking.XFrameOptionsMiddleware‘, )
cmd中输入 python manage.py valible 检查有没有错
python manage.py sqlall check 生成sql语句
python manage.py syncdb 执行改成生成的语句
2.数据操作
#插入数据
def dbtestinsert(request): from check.models import usr u1=usr(usr=‘usr1‘,pwd="pwd1") u1.save() return HttpResponse("done") #查找数据
def dbtestselect(request): from check.models import usr a=usr.objects.all() b=usr.objects.filter(usr=‘usr1‘) #过滤,filter相当于sql语句中的where c=usr.objects.get(urs=‘usr1‘) #get用于获取单个元组,即单行数据 d=usr.objects.order_by("name") #排序 return HttpResponse(str(a)+str(b))
总结:好鸡肋的一个功能,django创建自己的数据库管理模块的目的就是统一管理数据库,不用每次运行sql语句时都要连接数据库,方便管理。但是使用数据库连接池PooledDB,就能很方便的管理数据库连接。
而且django这样使用数据库就等于完全舍弃了成熟的,已经成为业界标准的sql语句,而使用自己设计的连接API,这样无疑增加了开发者的开发壁垒,从而增加开发的难度,也使代码的可读性降低了不少。