多语言展示
当前在线:1843今日阅读:179今日分享:36

Django使用manage.py的shell增删改查数据库

Django使用manage.py的shell增删改查数据库
方法/步骤
1

登录Ubuntu虚拟机,打开终端,创建django工程,在工程内创建应用,命令如下:workon djangotestdjango-admin startproject djmyshellcd djmyshellpython manga.py startapp book

2

在工程配置文件settings.py文件,注册应用,修改数据库连接配置cd djmyshellvi settings.py修改部分的settings.py文件如下:INSTALLED_APPS = [    'django.contrib.admin',    'django.contrib.auth',    'django.contrib.contenttypes',    'django.contrib.sessions',    'django.contrib.messages',    'django.contrib.staticfiles',    'book.apps.BookConfig',]DATABASES = {    'default': {        'ENGINE': 'django.db.backends.mysql',        'HOST': '127.0.0.1',  # 数据库主机        'PORT': 3306,  # 数据库端口        'USER': 'root',  # 数据库用户名        'PASSWORD': 'your password',  # 数据库用户密码        'NAME': 'djtest'  # 数据库名字,第3步新建的数据库    }}

3

登录mysql,创建djtest数据库mysql -uroot -p输入密码create database djtest default charset=utf8;show databases;quit;

4

在工程同名文件夹,子目录的__init__.py文件进行导包vi __init__.py__init__.py文件如下:from pymysql import install_as_MySQLdbinstall_as_MySQLdb()这样就可以用pymysql包与mysql数据库进行底层交互了

5

在book应用文件夹,编写models.py文件,创建模型类,代码如下:cd ../bookvi models.pymodels.py文件如下:from django.db import models# Create your models here.class Employee(models.Model):    GENDER_CHOICES = (        (0, 'male'),        (1, 'female')    )    name = models.CharField(max_length=20,null=False,verbose_name='姓名')    gender = models.SmallIntegerField(choices=GENDER_CHOICES,default=0,verbose_name='性别')    startwork = models.DateField(verbose_name='入职时间')    is_delete = models.BooleanField(default=False,verbose_name='逻辑删除')    class Meta:        db_table = 'tb_employee'        verbose_name = '员工'        verbose_name_plural=verbose_name    def __str__(self):        return self.name

6

生成数据库迁移文件,并同步到数据库cd ..python manage.py makemigrationspython manage.py migrate

7

进入manage.py的shell,增加一条数据python manage.py shell>>> from book.models import Employee>>> from datetime import date>>> emp = Employee(name='za',gender=0,startwork=date(1999,1,1))>>> emp.save()有default默认值的字段,不用赋值数据表存的就是默认值

8

查找name为‘za’的员工性别>>> s = Employee.objects.get(name='za')>>> s.gender0

9

修改name为‘za’员工性别改为1>>> s = Employee.objects.get(name='za')>>> s.gender0>>> s.gender = 1>>> s.save()>>> s.gender1>>>

10

删除name为‘za’的员工>>> s.delete()再次查找就找不到匹配记录了,这是最简单的增删改查,实际中还有聚合函数等等复杂的操作

推荐信息