Django数据库数据表操作

Posted dear_diary

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Django数据库数据表操作相关的知识,希望对你有一定的参考价值。

  • 建立表单

django通过设置类来快速建表,打开models.py

例:

from __future__ import unicode_literals

 from django.db import models

 # Create your models here.
 # 新建一个类叫user,其实就是新建一张叫user的表
 class user(models.Model):
     username = models.CharField(max_length = 20)
     password = models.CharField(max_length = 20)
     # 此函数是为了用该名字来显示对象
     def __unicode__(self):
         return self.username

我们可以看到数据库类有两个字段,分别是usernamepassword,其实django还会默认添加一个id字段

同步数据库,在终端输入:

python manage.py makemigrations
 python manage.py migrate
  • 在可视化数据库看到此表

修改admin.py文件

from django.contrib import admin
 from learning.models import user# 导入user类

 # Register your models here.
 admin.site.register(user)# 把user添加到admin
  • 数据表的操作

每次对数据库操作都需要把其导入进来

from learning.models import user
  • 插入

假设我们要插入一条username=‘ben‘password=‘ben‘的记录(因为默认是非空的字段,所以要将所有字段都要填入,当然,默认的自增id除外),我们可以这样干

user(username=ben, password=ben).save()
 #等同于SQL语句:INSERT INTO user(username,password) values (‘ben‘,‘ben‘)
  • 查询

假设我们要获取所有数据,则使用下面的语句:

alldata = user.objects.all()
 #等同于SQL语句:SELECT * FROM user

假设我们要通过一个字段来获取数据(具有唯一性),则使用下面的语句:

onedata = user.objects.get(username=ben)
 #约等同于SQL语句:SELECT * FROM userWHERE username=‘ben‘

假设我们要通过过滤器来找多条数据,则使用下面的语句:

datas = user.objects.filter(password__in=[ben,sam,jack])
 #约等同于SQL语句:SELECT * FROM userWHERE username in (‘ben‘,‘sam‘,‘jack‘)
  • 操作具体举例:(在views.py文件中)
  • def login(username, password):
           try:
               person = user.objects.get(username=username)
               try:
                   person = user.objects.get(username=username,password=password)
                   return 登录成功
               except:
                   return 登录密码错误
           except:
               return 不存在该用户
    
       def register(username, password):
           try:
               person = user.objects.get(username=username)
               return 注册帐号已存在
           except:
               user(username=username,password=password).save()
               return 注册成功

     

 

 

以上是关于Django数据库数据表操作的主要内容,如果未能解决你的问题,请参考以下文章

django.core.exceptions.ImproperlyConfigured: Requested setting DEFAULT_INDEX_TABLESPACE的解决办法(转)(代码片段

中继现代片段错误(期望对象包含数据....)

Django---ORM操作大全

Django之ORM操作

Django-ORM操作数据库无数据问题

Django详解之models操作