最新公告
  • 欢迎您光临起源地模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • django用什么数据库

    正文概述    2020-05-17   371

    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用什么数据库

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元