zoukankan      html  css  js  c++  java
  • django 笔记4 数据库操作

    django操作数据库
    orm操作
    select * from tb where id > 1
    对应关系
    models.tb.objects.filter(id__gt=1)
    models.tb.objects.filter(id=1)
    models.tb.objects.filter(id__lt=1)
    
    创建类
            1  -根据类自动创建数据库表
            #models.py操作
            #######################################
            from django.db import models
            # Create your models here.
    
            #表名会默认为app01_userinfo
            class UserInfo(models.Model):
                #创建用户名列 字符串类型 指定长度
                #默认会创建个id列 且自增 为主键
                username = models.CharField(max_length=32)
                password = models.CharField(max_length=64)
            #######################################
            python manage.py makemigrations
    
            No changes detected 表示要去找models 所以在settings中的 INSTALLED_APPS=[添加个app名称]
            migrations记录了生成数据库表结构的一些数据0001_initial.py
            python manage.py migrate 生成数据库且会生成表
    
            2  -根据类对数据库表中的数据进行各种操作
    
    若要改为MySQL连接 需要改settings  数据库配置文档 www.cnblogs.com/wupeiqi/articles/5237704.html
    DATABASES = {
            'default':{
            'ENGINE':'django.db.backends.mysql',
            'NAME':'dbname',
            'USER': 'root',
            'PASSWORD': 'xx',
            'HOST':'',
            'PORT':''
        }
    }
        注意:
        MySQLdb模块在Python3是没有的
        在project中的__init__.py 即settings同级的__init__.py文件添加
        import pymysql
        pymysql.install_as_MySQLdb()
    
    
        增删改查
        #################################################################
        from app01 import models
    def orm(request):
        #创建数据的方法1  一行插入数据
        models.UserInfo.objects.create(
            username='root',
            password='123'
        )
        #创建数据的方法2
        obj = models.UserInfo(username='ljc',password='123')
        obj.save()
    
        #创建数据方法3
        dic = {'username':'eric', 'password':'123'}
        models.UserInfo.objects.create(**dic)
        return HttpResponse('orm')
    
    def select(request): #查找数据
        result = models.UserInfo.objects.all() #表示所有数据都拿到
        #result QuerySet 是Django提供的 可以理解为列表[]
        #[obj1(id, username, password), obj2, obj3] 是UserInfo的对象
        for row in result:
            print(row.id,row.username, row.password)
    
        result = models.UserInfo.objects.filter(username="root") #查找条件 username='root'的 如果username,password 是and共同拥有
        for i in result:
    
            print(i.username)
        return HttpResponse(result[1])
    
    def delete(request):  #删除数据
        models.UserInfo.objects.filter(id=4).delete()  #filter类似where条件
        return HttpResponse(123)
    
    def update(request):  #修改数据
        models.UserInfo.objects.all().update(password=666)  #将密码全部改为666
        return HttpResponse(123)
        #################################################################
  • 相关阅读:
    Wwise音频解决方案概述
    图形学中的几何光学理论与视觉现象
    Visual Studio 2015 Tools for Unity使用基础
    C++编译器优化技术:RVO、NRVO和复制省略
    【ElasticSearch】 ElasticSearch基本概念和RESTful API(四)
    【ElasticStack】入门介绍(三)
    【Java】开发一个Java-SDK
    【Java】Maven 打包可运行jar包
    【SpringBoot】Spring Boot Admin 微服务应用监控
    【Java面试题】方法的参数传递机制
  • 原文地址:https://www.cnblogs.com/Liang-jc/p/9180980.html
Copyright © 2011-2022 走看看