您当前的位置: 首页 >  django

暂无认证

  • 6浏览

    0关注

    92582博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

Django-ORM模型层语法(一)单表操作之增删改

发布时间:2020-12-06 11:49:55 ,浏览量:6

单表操作
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() 
关注
打赏
1653961664
查看更多评论
立即登录/注册

微信扫码登录

0.3626s