• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

django用什么数据库

python 搞java代码 3年前 (2022-05-24) 30次浏览 已收录 0个评论

数据库是网站开发中一个重要的部分,在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)

www#gaodaima.com来源gao@dai!ma.com搞$代^码网搞代码

以上的类名代表了数据库的表名,且这个类继承了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 <a href="https://www.gaodaima.com/tag/django" title="查看更多关于django的文章" target="_blank">django</a>.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)

来更新某个对象。

来源:搞代码网:原文地址:https://www.gaodaima.com


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:django用什么数据库

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址