一、Django 连接 MySQL


修改 settings.py 文件

# 默认用的是sqlite3
# Database
# https://docs.djangoproject.com/en/4.1/ref/settings/#databases # DATABASES = {
# 'default': {
# 'ENGINE': 'django.db.backends.sqlite3',
# 'NAME': BASE_DIR / 'db.sqlite3',
# }
# } # 配置文件中配置
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'xyz',
'USER':'root',
'PASSWORD':'root',
'HOST':'114.116.30.138',
'PORT':3306,
'CHARSET':'utf8'
}
}

二、导入 pymysql


django默认用的是 mysqldb 模块链接 MySQL,但是该模块的兼容性不好 需要手动改为用pymysql 连接。

在项目名下的init 或者任意的应用名下的init 文件中书写以下代码都可以

import pymysql
pymysql.install_as_MySQLdb()

安装 pymysql

pip3 install pymysql

三、Django ORM


ORM 是对象关系映射(英语:Object Relational Mapping,简称 ORM),是一种程序技术,用于实现面向对象编程语言里不同类型系统的数据之间的转换。

ORM 的由来:面向对象是从软件工程基本原则(如耦合、聚合、封装)的基础上发展起来的,而关系数据库则是从数学理论发展而来的,两套理论存在显著的区别。为了解决这个不匹配的现象,对象关系映射技术应运而生。

1 app 应用下面的 models.py 文件中书写一个类

from django.db import models

# Create your models here.

# CharField    必须要指定 max_length 参数不指定会直接报错
# verbose_name 该参数是所有字段都有,用来对字段的解释 class User(models.Model):
# id int primary_key auto_increment
id = models.AutoField(primary_key=True,verbose_name='主键')
# username varchar(32)
username = models.CharField(max_length=32,verbose_name='用户名')
password = models.CharField(max_length=64,verbose_name='密码')
age = models.IntegerField(verbose_name='年龄')

2 数据库迁移命令 将操作记录到(migrations文件夹)中

python manage.py makemigrations

3 将操作真正的同步到数据库中

python manage.py migrate

只要修改了 models.py 中跟数据库相关的代码 就必须重新执行上述的两条命令

 4 生成许多表,而 app_user 是自己定义的

四、 id 字段


由于一张表中必须要有一个主键字段 并且一般情况下都叫 id字段。

所以ORM 当你不定义主键字段的时候 ORM 会自动帮你创建一个名为 id主键字段。

也就意味着 后续我们在创建模型表的时候,如果主键字段名没有额外的叫法,那么主键字段可以省略不写。

五、字段的增删改查


字段的增加
 
1 可以在终端内直接给出默认值

2 该字段可以为空(null=True)
info = models.CharField(max_length=32, verbose_name='个人简介', null=True)
3 直接给字段设置默认值(default='py')

hobby = models.CharField(max_length=32, verbose_name='兴趣爱好', default='py')

字段的修改

  • 直接修改代码,然后执行数据库迁移的两条命令即可。
字段的删除
  • 直接注释对应的字段然后执行数据库迁移的两条命令即可!执行完毕之后字段对应的数据也都没有了。
  • 注意:在操作 models.py 的时候一定要细心,千万不要注释一些字段,执行迁移命令之前最好先检查一下自己写的代码。
增加email字段(终端内直接给出默认值)
 

Django 连接数据库 MySQL的更多相关文章

  1. Django框架之第二篇--app注册、静态文件配置、form表单提交、pycharm连接数据库、django使用mysql数据库、表字段的增删改查、表数据的增删改查

    本节知识点大致为:静态文件配置.form表单提交数据后端如何获取.request方法.pycharm连接数据库,django使用mysql数据库.表字段的增删改查.表数据的增删改查 一.创建app,创 ...

  2. Django学习笔记(4)——Django连接数据库

    前言 在MVC或者MTV设计模式中,模型(M)代表对数据库的操作.那么如何操作数据库呢?本小节就认真学习一下.首先复习一下Django的整个实现流程 ,然后再实现一下使用数据库的整个流程,最后学习一下 ...

  3. django连接mysql数据库以及建表操作

    django连接mysql数据库需要在project同名的目录下面的__init__.py里面加入下面的东西 import pymysql pymysql.install_as_MySQLdb() 找 ...

  4. python测试开发django-10.django连接mysql

    前言 Django 对各种数据库提供了很好的支持,包括:PostgreSQL.MySQL.SQLite.Oracle.本篇以mysql为例简单介绍django连接mysql进行数据操作 Django连 ...

  5. Django 连接 MySQL 数据库及常见报错解决

    目录 Django 连接 MySQL数据库及常见报错解决 终端或者数据库管理工具连接 MySQL ,并新建项目所需数据库 安装访问 MySQL 的 Python 模块 Django 相关配置 可能会遇 ...

  6. 关于Django数据库mysql连接错误问题Connection to api@localhost failed. [08001] Could not create connection to d

    Connection to api@localhost failed. [08001] Could not create connection to d 错误类型 django连接mysql数据库错误 ...

  7. 使用django连接数据库 对数据库 增删改查

    如果路由访问的时候出现 就把项目中的注释掉 登录功能 1 路由访问如果不加斜杠 会内部自动重定向加斜杠的路由 所有的静态文件(css,js,前端第三方类库)默认都放在static文件下 #静态文件配置 ...

  8. Django 文件配置、pycharm及django连接数据库、表的增删改查 总结

    静态文件配置 1.你在浏览器中输入网址能够有响应的资源返回给你 是因为后端已经提前给你开设该资源的接口,也就意味着你所能 访问到的资源 都是人家事先定义好的 2.django如何给用户开设资源接口呢? ...

  9. Django 之 文件配置、pycharm及django连接数据库、创表及表的增删改查02

    目录 创建项目后的文件夹配置 静态文件配置 接口前缀动态绑定 form表单回顾 根据请求方式的不同,返回前端不同的信息 pycharm 连接MYSQL数据库 Django 连接MYSQL数据库的配置 ...

随机推荐

  1. Gitlab分支策略建议指南

    本文分支策略为总结各中小型企业常见做法(仅代表个人观点),在下才疏学浅,文章如有缺漏或不当之处,望各位帮忙指正.写此文也十分希望能起抛砖引玉之效. 据我所知,目前大部分无论是按瀑布/敏捷开发模型,就算 ...

  2. WannaRen来袭:螣龙安科带你盘点那些年的勒索病毒

    2020年4月7日,360CERT监测发现网络上出现一款新型勒索病毒wannaRen,该勒索病毒会加密windows系统中几乎所有的文件,并且以.WannaRen作为后缀.360CERT该事件评定:危 ...

  3. 1 什么是Zookeeper 能干什么

    1 Zookeeper 概述 美团,饿了么,淘宝,58 同城等等应用都是 zookeeper 的现实生活版 博主我开了个饭店,如何才能让大家都能吃到我们的饭菜?需要入驻美团,这样大家就可以在美团 ap ...

  4. Windows 进程的创建和终止

    创建一个进程 总述 如图,创建一个进程主要分为两部分,用户态部分和内核部分. 既然我们想看看一个进程是怎么被创建的,那我们就用 WinDbg 来看看从用户态到内核态都调用了什么: 第一步:我们先看看 ...

  5. docker restart但是容器不重启

    有两点: 1.在/etc/docker/daemon.json中添加 "live-restore": true 或手动启用 dockerd --live-restore syste ...

  6. day01--MarkDown语法格式

    MarkDown语法格式 标题 一级标题 一级标题: 井号+空格+标题名字 二级标题 二级标题: 双井号+空格+标题名字 三级标题 三级标题: 三井号+空格+标题名字 ......... 字体 斜体( ...

  7. 音响音箱/恒温壶/电量显示/电子数字时钟等LED数码管显示驱动IC-VK1640B 8段12位/12段8位显示

    市面上最常用的数码管为七段/八段显示,八段数码管比七段数码管多一个发光二极管单元(比七段数码管多一个点),又按能显示多少个"8"可分为1位.2位.4位等等.数码管又分为共阳极驱动/ ...

  8. CF1700C Helping the Nature

    题目大意: 给出一个长度为 n 的序列 a,每次可以进行三种操作中的一种: 选择i,将 a_1,a_2,...,a_i减1. 选择i,将 a_i,a_i+1,...,a_n减1. 将所有 a_i加1. ...

  9. if语句实现考试成绩划分和用if语句替换三元运算符

    语句练习 指定考试成绩,判断成绩的等级. 90-100 优秀 80-89 好 70-79 良 60-69 及格 60以下 不及格 代码: public static void main(String[ ...

  10. 业务可视化-让你的流程图"Run"起来(4.实际业务场景测试)

    前言 首先,感谢大家对上一篇文章[业务可视化-让你的流程图"Run"起来(3.分支选择&跨语言分布式运行节点)]的支持. 下面我以实际业务场景为例,来介绍一下ladybug ...