当前位置: 首页 > news >正文

python操作数据库,django操作数据库

安装驱动

pip install mysqlclient

工程同名app下的settings.py

DATABASES = {'default': {'ENGINE': 'django.db.backends.mysql','NAME': 'test','USER': 'root','PASSWORD': 'hirain123','HOST': 'localhost','PORT': '3306','OPTION'; {'init_command': 'SET sql_model="STRICT_TRANS_TABLES"',}}
}

子应用的models.py

from django.db import modelsclass User(models.Model):id = models.AutoField(primary_key=True)name = models.CharField(max_length=50)level = models.IntegerField(default=1)createTime = models.DateTimeField(null=True)class Meta:db_table = 'User'

子应用中的admin.py
如果熟练使用Mysql或SQLyog这类可视化工具操作数据库的话,这步可以省略

from django.contrib import admin
from . import modelsadmin.site.register(models.User)
生成迁移文件
python manage.py makemigrations
同步到数据库中
python manage.py migrate

使用models必须创建模型

查所有
list = User.objects.all()
isdict = serializers.serialize('json', list)
return HttpResponse(isdict, content_type="application/json")# filter相当于SQL中的WHERE,可设置条件过滤结果response2 = Test.objects.filter(id=1) # 获取单个对象response3 = Test.objects.get(id=1) # 限制返回的数据 相当于 SQL 中的 OFFSET 0 LIMIT 2;Test.objects.order_by('name')[0:2]#数据排序Test.objects.order_by("id")# 上面的方法可以连锁使用Test.objects.filter(name="runoob").order_by("id")# 修改其中一个id=1的name字段,再save,相当于SQL中的UPDATEtest1 = User.objects.get(id=1)test1.name = 'Google'test1.save()# 删除id=1的数据test1 = User.objects.get(id=1)test1.delete()
#添加test1 = User(name='runoob')test1.save()

连贯

# 往数据库插入数据
UserInfo.objects.create(name=name, password=password, age=age)# 删除数据
UserInfo.objects.filter(id=1).delete()
UserInfo.objects.all().delete()UserInfo.objects.filter(id=1).update(name='new_name', age=30)模型原生查询
#dade = Dade1.objects.all()
dade = Dade1.objects.raw("select * from dade1 limit 1")
isdict = serializers.serialize('json', dade)

原生sql

			导入:from django.db import connectioncursor = connection.cursor()#插入cursor.execute("insert into hello_author(name) values('xiaol')")#更新cursor.execute("update hello_author set name='xiaol' where id=1")#删除cursor.execute("delete from hello_author where name='xiaol'")#查询cursor.execute("select * from hello_author")#返回一行raw = cursor.fetchone()print(raw)# #返回所有# cursor.fetchall()

自动生成models

python manage.py inspectdb > myFirstWeb/models.py
生成迁移文件
python manage.py makemigrations
同步到数据库中,已有表,生成有加入admin中
python manage.py migrate
dade = Dade1.objects.all()isdict = serializers.serialize('json', dade)return HttpResponse(isdict, content_type="application/json")
http://www.lryc.cn/news/372695.html

相关文章:

  • React框架资源
  • 【数据结构】初识数据结构之复杂度与链表
  • word怎么单页横向设置(页码不连续版)
  • 搭建 Tomcat 集群【Nginx 负载均衡】
  • 深入理解指针(二)
  • 【Qt 学习笔记】Qt窗口 | 标准对话框 | 文件对话框QFileDialog
  • 换卡槽=停机?新手机号使用指南!
  • 主题切换之根元素CSS自定义类
  • 如何在 ASP.NET Core Web Api 项目中应用 NLog 写日志?
  • selenium execute_script常用方法汇总
  • 如何选择最佳的APP封装平台-小猪APP分发为您解忧
  • Linux基础 (十八):Libevent 库的安装与使用
  • 冒泡排序的详细介绍 , 以及c , python , Java的实现方法
  • 使用llama.cpp实现LLM大模型的格式转换、量化、推理、部署
  • 给你一个扫码支付的二维码,如何写测试用例?
  • 计算机专业在未来的发展与抉择
  • 【Linux】基础IO——文件描述符,重定向
  • 1.0 Android中Activity的基础知识
  • 线代知识点总结
  • 案例学习-存量更新规划实施探索(武汉)
  • C#操作MySQL从入门到精通(17)——使用联结
  • MyBatis 关于查询语句上配置的详细内容
  • 基于STM32和人工智能的智能家居监控系统
  • 这三款使用的视频、图片设计工具,提供工作效率
  • [Algorithm][贪心][最长递增子序列][递增的三元子序列][最长连续递增序列][买卖股票的最佳时机][买卖股票的最佳时机Ⅱ]详细讲解
  • 手把手教你入门vue+springboot开发(三)--登录功能后端
  • 三款有3D效果的js图表库
  • 【SQLAlChemy】表之间的关系,外键如何使用?
  • Linux 基础IO 二
  • 找工作小项目:day15-macOS支持、完善逻辑