单表操作
django自带的sqlite3数据库对日期格式不是很敏感 处理的时候容易出错
settings.py
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'orm1', "USER":'root', 'PASSWORD':'123456', 'HOST':'127.0.0.1', 'PORT':3306, 'CHARSET':'utf8', } }
init.py
import pymysql pymysql.install_as_MySQLdb()
models.py
from django.db import models # Create your models here. class User(models.Model): name = models.CharField(max_length=32) age = models.IntegerField() register_time = models.DateField() # 年月日 ''' DatetimeField、DateField、TimeField这个三个时间字段,都可以设置如下属性 两个重要参数: auto_now:配置上auto_now=True,每次操作数据的时候,该字段会自动将当前时间更新' auto_now_add:配置auto_now_add=True,在创建数据的时候会自动将当前创建时间记录下来,只要不人为修改,那么就一直不变 '''
Terminal
python manege.py makemigrations python manage.py migrate
app01/tests.py
""" 当你只是想测试django中的某一个py文件内容 那么你可以不用书写前后端交互的形式 而是直接写一个测试脚本即可 脚本代码无论是写在应用下的tests.py还是自己单独开设py文件都可以 """ # 测试环境的准备 去manage.py中拷贝前四行代码 然后自己写两行 import os if __name__ == "__main__": os.environ.setdefault("DJANGO_SETTINGS_MODULE", "orm1.settings") import django django.setup() # 在这个代码块的下面就可以测试django里面的单个py文件了 # 所有的代码都必须等待环境准备完毕之后书写 from app01 import models models.User.objects.all() # django自带的sqlite3数据库对日期格式不是很敏感 处理的时候容易出错 # 增 # 方式一 create方法,create方法的返回值为 新添加的数据的模型类对象 res = models.User.objects.create(name='steven',age=18,register_time='2002-01-01') print(res) # 方式二 import datetime ctime = datetime.datetime.now() user_obj = models.User(name='jack',age='20',register_time=ctime) user_obj.save() # 删除 # 方式一 # queryset类型数据可以调用delete方法删除查询结果数据 res = models.User.objects.filter(pk=2).delete() print(res) ''' pk会自动查找到当前表的主键字段,指代的就是当前表的主键字段 用了pk之后,就不需要知道当前表的主键字段到底叫什么了 uid pid sid ... ''' # 方式二 # 模型类对象也可以调用delete方法删除数据 user_obj=models.User.objects.filter(pk=1).first() user_obj.delete() # 修改 # 方式一 # 通过queryset类型数据修改 models.User.objects.filter(pk=2).update(name='adam') # 方式二 # 通过模型类对象来修改 user_obj=models.User.objects.get(pk=2) ''' get方法返回的直接就是当前数据对象,当时该方法不推荐使用,一旦数据不存在,该方法会报错,而filter不会 ''' print(user_obj) user_obj.name = 'baby' user_obj.save()