扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
创新互联www.cdcxhl.cn八线动态BGP香港云服务器提供商,新人活动买多久送多久,划算不套路!
创新互联专注于企业营销型网站、网站重做改版、盐山网站定制设计、自适应品牌网站建设、成都h5网站建设、购物商城网站建设、集团公司官网建设、成都外贸网站制作、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为盐山等各大城市提供网站开发制作服务。小编给大家分享一下在Django开发中默认的数据库是什么,希望大家阅读完这篇文章后大所收获,下面让我们一起去探讨吧!
数据库是网站开发中一个重要的部分,在Django开发中,默认的数据库为SQLite,本文将简单讲解后端views.py与SQLite的数据交换。一个基本的数据库从创建到使用大概可以分为以下步骤:
在models.py中创建表
在之前创建的Django的app文件夹下,有一个models.py文件,这个文件就是用于创建数据库表的。下面以创建一个名为User的表为例,建立一个存储用户信息的表。在models.py中写入:
class User(models.Model): username = models.CharField(max_length=20,primary_key=True) password = models.CharField(max_length=30) email = models.EmailField() phone = models.CharField(max_length=15)
以上的类名代表了数据库的表名,且这个类继承了models.Model,在表中指定了四个字段,其中username中的primary_key=True表示将username设置为主键。常用的字段有:
models.CharField # 必须指定max_length参数 models.BooleanField models.EmailField models.FloatField models.IntegerField models.TextField models.URLField
生成相应的表
注册好表之后,接下来需要对settings.py作一些修改,settings.py位于创建的project的目录下。首先,需要注册我们创建的app,在settings.py中找到INSTALLED_APPS这一项,添加进你创建的app的名字。比如我创建的是名为"mytest"的app,models.py这些文件就在mytest这个目录下,就在INSTALLED_APPS中添加:"mytest"
由于我们这里使用的是默认的SQLite数据库,因此不需要对settings.py中的DATABASES项作修改,如果想要使用其他数据库,这一项需要进行修改。
接下来,在含有manage.py的目录下用命令行分别运行以下命令:
python manage.py makemigrations python manage.py migrate
这时你在models.py中定义的表就会被创建。如果在第一次创建表之后对表进行修改,例如增加字段,这时执行以上两个语句时就会出错,解决方法是在新增加的字段后使用null = True允许字段为空,或者使用default = xxx指定默认值
admin可视化管理models
到这里你的表已经可以使用了,但是如果你想可视化地对其进行操作的话,可以进行下列步骤:
首先进入app目录下的admin.py文件,加入:
from mytest import models
admin.site.register(models.User)
这里的mytest就是app的名字,User就是你的表的名字。然后,进入manage.py所在目录,命令行中运行:
python manage.py createsuperuser
创建管理用户后,运行server,进入127.0.0.1:8000/admin便可以管理数据库:
对数据库进行操作
在运行Django时,会需要对数据库进行增删改查等操作,下面介绍如何在views.py中对数据库进行操作
首先需要导入我们的models:
from mytest.models import User
1.查询
如果我们想获取单个对象,比如用户名为name的用户信息,我们可以输入:
user = User.objects.get(username=name)
然后,使用:user.password用于获取这个对象的其他字段比如密码
如果我们想判断某个对象是否存在,我们可以使用:
try: user = User.objects.get(username=name)except User.DoesNotExist: msg = Falseelse: passwd = user.password
如果想进行模糊检索,可以使用User.objects.filter(username__contains=name),其中contains前面是两个下划线。User.objects.filter(username__contains=name).filter(password__contains=pass)是“与”条件,“或”条件可以写成如下:
from django.db.models import Q User.objects.filter(Q(username__contains=name)|Q(password__contains=pass))
2.增加
使用:
obj = User(username=name,password=passwd) obj.save()
来向User表中增添对象
3.删除
使用:
User.objects.filter(username=name).delete()
或者
user = User.objects.get(username=name) user.delete()
来删除某个对象
4.更新
使用
user = User.objects.get(username=name) user.password = newpass user.save()
或者
User.objects.filter(username=name).update(password=newpass)
来更新某个对象。
看完了这篇文章,相信你对在Django开发中默认的数据库是什么有了一定的了解,想了解更多相关知识,欢迎关注创新互联-成都网站建设公司行业资讯频道,感谢各位的阅读!
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流