Django和Mysql数据库

Django学习笔记

Django和Mysql数据库

Django开发操作数据库更简单,内部提供了ORM框架。

1)安装mysqlclient

pip3 install mysqlclient

2)ORM

ORM可以帮助我们做两件事:

1.创建、修改、修改数据库中的表(不用写sql语句)[不能创建数据库]

2.操作表中的数据(不用写sql语句)

3)创建数据库

create database database_name;

4)配置Django连接数据库

修改settings.py文件

DATABASES = {'default': {'ENGINE': 'django.db.backends.mysql',       #数据库类型'NAME': 'helloWorld',                       #数据库名称'USER': 'root',                             #数据库用户名'PASSWORD': 'xxxx',                         #数据库密码'HOST': 'xxx.xxx.xxx.xxx',                  #数据库主机地址'PORT': '33060',                            #数据库端口号}
}

5)在modeles.py中创建一个用于生成表的类

from django.db import models# Create your models here.
class userInfo(models.Model):     #这个类用于生成表name =  models.CharField(max_length=32)      #定义name字段password = models.CharField(max_length=16)   #定义password字段age = models.IntegerField()                  #定义age字段"""
Django执行上面这个类的时候,相当于执行了建表操作(新建的表名为“app名_类名”),相当于以下代码:
create table app1_userinfo(id bigint auto_increment primary key,    name varchar(32),password varchar(16),age int)
"""

6)创建表,将数据自带表迁移到数据库中

python manage.py makemigrations    #生成迁移文件 
python manage.py migrate           #进行迁移

迁移完后,在数据库中应该可以看到一些django的表

注意:

如果不执行迁移,那么在使用的时候,有些数据需要存到自带的表中,那么就会报错。

这样就可以看到数据库中已创建好了一张表

在这里插入图片描述

如果要删除表,只需要把models.py中的类删除,重新执行表迁移就可以。

如果要修改表,只需要修改models.py中的类,重新执行表迁移就可以。

注意:

在新建 的表中会自动增加一个ID字段,并且为auto_increment 和primary key

如果在表中增加了新字段,进行迁移的时候会有两个选项:

选项1 :手动指定一个默认值;

选项2:退出,可以在类中将将新增字段添加一个默认值;

如:

six=models.CharField(max_length=4,defalut=l)

或者设置新增字段允许为空

six=models.CharField(max_length=4,null=True,blank=True)

1.13操作数据

1)新增记录

from app1 import models              #引入models模块
models.<class_name>.objects.create(<field1>=<value>,<field2>=<value>.....)#相当于以下sql语句
#insert into <table_name> (<field1>,<field2>...) values(<value1>,<value2>.....)

2)删除记录

models.<class_name>.objects.filter(条件).delete()     #删除满足条件的数据
models.<class_name>.objects.all.delete()             #删除表中所有的数据

3)查询数据

data_list1 = models.<class_name>.objects.all()         #获取表中的所有数据QuerySet类型
for row in data_list1:                                  #遍历所有数据print(row.<field>)                                  #获取指定字段的数据
data_list2 = models.<class_name>.objects.filter(条件)    #获取满足指定条件的数据

4)修改数据

#修改所有记录的指定字段值
models.<class_name>.objects.all().update(<field>=<new value>)
#修改符合条件的记录的指定字段值
models.<class_name>.objects.filter(条件).update(<field>=<new value>)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/747800.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux系统性能优化:七个实战经验

1、影响Linux系统性能的因素一般有哪些&#xff1f; Linux系统的性能受多个因素的影响。以下是一些常见的影响Linux系统性能的因素&#xff1a; CPU负载&#xff1a;CPU的利用率和负载水平对系统性能有直接影响。高CPU负载可能导致进程响应变慢、延迟增加和系统变得不稳定。 内…

运维自动化之——Ansible

目录 一、自动化运维 1、通过xshell实现自动化运维 2、Ansible简介 3、Ansible特点及优势 4、Ansible核心程序 5、Ansible工作原理及流程 6、部署Ansible自动化运维工具 7、Ansible常用模块 ①ansible命令模块 ②command模块 ③shell模块 ④cron模块 ⑤user模块 …

Redis:ClassCastException【bug】

Redis&#xff1a;ClassCastException【bug】 前言版权Redis&#xff1a;ClassCastException【bug】错误产生相关资源控制器&#xff1a;UserController("/user")配置&#xff1a;RedisConfiguration实体类&#xff1a;User数据表&#xff1a;User 解决 最后 前言 2…

Windows蓝牙驱动开发之模拟HID设备(一)(把Windows电脑模拟成蓝牙鼠标和蓝牙键盘等设备)

by fanxiushu 2024-03-14 转载或引用请注明原作者 把Windows电脑模拟成蓝牙鼠标和蓝牙键盘&#xff0c;简单的说&#xff0c;就是把笨重的PC电脑当成鼠标键盘来使用。 这应该是一个挺小众的应用&#xff0c;但有时感觉也应该算比较好玩吧&#xff0c; 毕竟实现一种一般人都感觉…

Docker安装蜜罐Hfish

前言 无意中发现公司的一台服务器被爆破&#xff0c;修改了密码&#xff0c;为了确定内网是否安装需要搭建一个蜜罐来看一下是否存在隐患。 如何安装Docker&#xff0c;请查看我另一篇文章 https://blog.csdn.net/l1677516854/article/details/136751211 一、拉取镜像 dock…

工具类实现导出复杂excel、word

1、加入准备的工具类 package com.ly.cloud.utils.exportUtil;import java.util.Map;public interface TemplateRenderer {Writable render(Map<String, Object> dataSource) throws Throwable;}package com.ly.cloud.utils.exportUtil;import java.util.Map;public int…

Unity中的网格创建和曲线变形

Unity中的网格创建和曲线变形 3D贝塞尔曲线变形贝塞尔曲线基础线性公式二次方公式三次方公式 Unity 实现3D贝塞尔曲线变形准备工作脚本概述变量定义 变量解析函数解析 获取所有子节点GetAllChildren 获取所有子节点UpdateBezierBend 控制点更新CalculateBezier Bezier 曲线公式…

【SQL】PgSQL常用命令

PgSQL常用操作&#xff08;命令&#xff09; 连接数据库 使用username连接一个名为username的数据库&#xff08;数据库与用户名同名&#xff0c;其余默认&#xff09; psql -U username;使用username登录名为dbname的数据库&#xff08;其余默认&#xff09; psql -U user…

【算法杂货铺】二分算法

目录 &#x1f308;前言&#x1f308; &#x1f4c1; 朴素二分查找 &#x1f4c2; 朴素二分模板 &#x1f4c1; 查找区间端点处 细节&#xff08;重要&#xff09; &#x1f4c2; 区间左端点处模板 &#x1f4c2; 区间右端点处模板 &#x1f4c1; 习题 1. 35. 搜索插入位…

AI辅助信息技术发展

2024 年 AI 辅助研发趋势随着人工智能技术的持续发展与突破&#xff0c;2024年AI辅助研发正成为科技界和工业界瞩目的焦点。从医药研发到汽车设计&#xff0c;从软件开发到材料科学&#xff0c;AI正逐渐渗透到研发的各个环节&#xff0c;变革着传统的研发模式。在这一背景下&am…

【大数据】二、HDFS 入门演示

大数据 要了解大数据&#xff0c;我们就要先了解什么是数据&#xff1f; 数据就是指人们的行为&#xff0c;人们的某个行为都被称为是一项数据&#xff0c;这些数据可以用来对生活中各种各样的事物进行分析&#xff0c;而我们进行分析所需要的技术就是我们所学的大数据的一系…

phpcms头像上传漏洞引发的故事

目录 关键代码 第一次防御 第一次绕过 第二次防御 第二次绕过 第三次防御 第三次绕过 如何构造一个出错的压缩包 第四次防御 第四次绕过 本篇文章是参考某位大佬与开发人员对于文件包含漏洞的较量记录下的故事&#xff0c;因为要学习文件包含漏洞&#xff0c;就将大佬…

什么是 HTTPS?它是如何解决安全性问题的?

什么是 HTTPS&#xff1f; HTTPS&#xff08;HyperText Transfer Protocol Secure&#xff09;是一种安全的通信协议&#xff0c;用于在计算机网络上安全地传输超文本&#xff08;如网页、图像、视频等&#xff09;和其他数据。它是 HTTP 协议的安全版本&#xff0c;通过使用加…

Java开发从入门到精通(九):Java的面向对象OOP:成员变量、成员方法、类变量、类方法、代码块、单例设计模式

Java大数据开发和安全开发 &#xff08;一)Java的变量和方法1.1 成员变量1.2 成员方法1.3 static关键字1.3.1 static修饰成员变量1.3.1 static修饰成员变量的应用场景1.3.1 static修饰成员方法1.3.1 static修饰成员方法的应用场景1.3.1 static的注意事项1.3.1 static的应用知识…

微服务技术栈SpringCloud+RabbitMQ+Docker+Redis+搜索+分布式(五):分布式搜索 ES-中

文章目录 一、DSL查询文档1.1 简单查询1.2 复合查询 二、搜索结果处理三、RestClient演示 查询与结果分析四、案例4.1 问题解析4.2 代码4.2.1 实体bean4.2.2 控制层4.2.3 业务service4.2.4 启动类 一、DSL查询文档 1.1 简单查询 # 1. DSL查询 # 1.1 查询所有GET /hotel/_searc…

JavaScript 进阶(一)

一、作用域 作用域&#xff08;scope&#xff09;规定了变量能够被访问的“范围”&#xff0c;离开了这个“范围”变量便不能被访问。 作用域分为&#xff1a; 局部作用域 、全局作用域。 1.1局部作用域 局部作用域分为函数作用域和块作用域。 1. 函数作用域&#xff1a; 在函数…

LINUX磁盘挂载(centos磁盘挂载)

1、查看磁盘情况: [root@xus ~]# df -h Filesystem Size Used Avail Use% Mounted on devtmpfs 7.8G 0 7.8G 0% /dev tmpfs 7.9G 0 7.9G 0% /dev/shm tmpfs 7.9G 17M 7.8G 1% /run tmpfs 7.9G 0 7.9G 0…

分布式系统常见负载均衡实现模式

分布式系统常见负载均衡实现模式 1. 4层负载均衡1.1. 负载均衡的常见需求1.2. 负载均衡的实现模式1.2.1 DR模式1.2.2 TUN模式1.2.3 NAT模式1.2.4 FULLNAT模式1.2.5 4种模式的差异 1.3. 负载均衡的均衡算法1.3.1 静态负载均衡1.3.2 轮询法1.3.3 加权循环法1.3.4 IP 哈希法1.3.5 …

Vue前端开发记录(一)

本篇文章中的图片均为深色背景&#xff0c;请于深色模式下观看 说明&#xff1a;本篇文章的内容为vue前端的开发记录&#xff0c;作者在这方面的底蕴有限&#xff0c;所以仅作为参考 文章目录 一、安装配置nodejs,vue二、vue项目目录结构三、前期注意事项0、组件1、数不清的报…

【Nuxt3】项目pages目录的用法介绍

简言 记录下nux3pages目录文件的使用方法。 pages pages目录是存放项目页面文件的地方&#xff0c;Nuxt 3提供基于文件的路由功能&#xff0c;可在网络应用程序中创建路由。 pages/ 目录中的每个页面文件都代表不同的路由&#xff0c;显示其内容。 建议将其他的业务组件vue文…