登录Ubuntu虚拟机,打开终端,创建django工程,在工程内创建应用,命令如下:workon djangotestdjango-admin startproject djmyshellcd djmyshellpython manga.py startapp book
在工程配置文件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步新建的数据库 }}
登录mysql,创建djtest数据库mysql -uroot -p输入密码create database djtest default charset=utf8;show databases;quit;
在工程同名文件夹,子目录的__init__.py文件进行导包vi __init__.py__init__.py文件如下:from pymysql import install_as_MySQLdbinstall_as_MySQLdb()这样就可以用pymysql包与mysql数据库进行底层交互了
在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
生成数据库迁移文件,并同步到数据库cd ..python manage.py makemigrationspython manage.py migrate
进入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默认值的字段,不用赋值数据表存的就是默认值
查找name为‘za’的员工性别>>> s = Employee.objects.get(name='za')>>> s.gender0
修改name为‘za’员工性别改为1>>> s = Employee.objects.get(name='za')>>> s.gender0>>> s.gender = 1>>> s.save()>>> s.gender1>>>
删除name为‘za’的员工>>> s.delete()再次查找就找不到匹配记录了,这是最简单的增删改查,实际中还有聚合函数等等复杂的操作