当前位置: 首页 > 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")

相关文章:

  • 【Vue】自学笔记(四)
  • 有没有硅基生命?AGI在哪里?
  • 【面试干货】ArrayList、Vector、LinkedList的存储性能和特性比较
  • 类android设备reset过程
  • C++语法08 数据类型之间的强制转换
  • FlinkCDC 3.1.0 支持 Flink 1.18.0 版本选择
  • B树与B+树与Mysql innodb的B+树和其相关索引
  • 厂里资讯之总体架构介绍以及环境搭建
  • PostgreSQL基础(十四):PostgreSQL的数据迁移
  • IT入门知识博客文章大纲(0/10)
  • Windows 11部署FunASR离线语音识别系统
  • iOS接入Flutter
  • 带侧边栏布局:带导航的网页
  • Cask ‘oraclexxx‘ is unavailable: No Cask with this name exists.
  • 如何完美解决升级 IntelliJ IDEA 最新版之后遇到 Git 记住密码功能失效的问题
  • 【剑指offer】让抽象问题具体化
  • 08.Android之View事件问题
  • 8年软件测试工程师感悟——写给还在迷茫中的朋友
  • Computed property XXX was assigned to but it has no setter
  • Docker: 容器互访的三种方式
  • E-HPC支持多队列管理和自动伸缩
  • iOS 系统授权开发
  • MySQL的数据类型
  • Object.assign方法不能实现深复制
  • Objective-C 中关联引用的概念
  • React系列之 Redux 架构模式
  • Vue.js-Day01
  • 分布式任务队列Celery
  • 分享一份非常强势的Android面试题
  • 机器学习中为什么要做归一化normalization
  • 前端js -- this指向总结。
  • 前端每日实战 2018 年 7 月份项目汇总(共 29 个项目)
  • 一个SAP顾问在美国的这些年
  • 职业生涯 一个六年开发经验的女程序员的心声。
  • ​ 全球云科技基础设施:亚马逊云科技的海外服务器网络如何演进
  • ​iOS安全加固方法及实现
  • ​Kaggle X光肺炎检测比赛第二名方案解析 | CVPR 2020 Workshop
  • ​sqlite3 --- SQLite 数据库 DB-API 2.0 接口模块​
  • # 20155222 2016-2017-2 《Java程序设计》第5周学习总结
  • # Spring Cloud Alibaba Nacos_配置中心与服务发现(四)
  • #QT项目实战(天气预报)
  • (1)Jupyter Notebook 下载及安装
  • (done) 声音信号处理基础知识(4) (Understanding Audio Signals for ML)
  • (初研) Sentence-embedding fine-tune notebook
  • (回溯) LeetCode 77. 组合
  • (教学思路 C#之类三)方法参数类型(ref、out、parmas)
  • (每日持续更新)信息系统项目管理(第四版)(高级项目管理)考试重点整理 第13章 项目资源管理(七)
  • (十六)一篇文章学会Java的常用API
  • (算法)大数的进制转换
  • (提供数据集下载)基于大语言模型LangChain与ChatGLM3-6B本地知识库调优:数据集优化、参数调整、Prompt提示词优化实战
  • (五)MySQL的备份及恢复
  • (一)SvelteKit教程:hello world
  • (转)清华学霸演讲稿:永远不要说你已经尽力了
  • ../depcomp: line 571: exec: g++: not found
  • .“空心村”成因分析及解决对策122344