Django ORM------Mysql
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Django ORM------Mysql,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含4411字,纯文字阅读大概需要7分钟。
内容图文
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.DB-first:根据类自动创建数据库表
#models.py
settings.py中要注册app
默认生成的表名为:#app01_userinfo
![技术分享](/upload/getfiles/default/2022/11/4/20221104022333599.jpg)
![技术分享](/upload/getfiles/default/2022/11/4/20221104022333722.jpg)
from django.db import models #create your models here.class UserInfo(models.Model): #django会默认创建一个id列,自增,主键#用户名列,字符串类型,指定长度 username = models.CharField(max_length=32) password = models.CharField(max_length=64) 项目的settings->INSTALLED_APPS=[]中,添加app,如图: 然后命令行执行: python manage.py makemigrations python manage.py migrate #根据生成的py文件,直接生成数据库
项目settings.py->DATABASE={}中设置使用的数据库:默认连接sqlite
连接mysql配置文件:
![技术分享](/upload/getfiles/default/2022/11/4/20221104022333599.jpg)
![技术分享](/upload/getfiles/default/2022/11/4/20221104022333722.jpg)
DATABASES = { ‘default‘: { ‘ENGINE‘: ‘django.db.backends.mysql‘, ‘NAME‘:‘dbname‘, ‘USER‘: ‘root‘, ‘PASSWORD‘: ‘xxx‘, ‘HOST‘: ‘‘, ‘PORT‘: ‘‘, } }
***********注意***********
Django默认用Mysqldb模块连接mysql,所以会报错,应该修改为pymysql连接
在项目的__init__.py文件中,添加: import pymysql pymysql.install_as_MySQLdb()
2.Code-first:根据类对数据库表中的数据进行各种操作
一、概述
1、什么是数据库 ?
答:数据的仓库,如:在ATM的示例中我们创建了一个 db 目录,称其为数据库
2、什么是 MySQL、Oracle、SQLite、Access、MS SQL Server等 ?
答:他们均是一个软件,都有两个主要的功能:
- a. 将数据保存到文件或内存
-
b. 接收特定的命令,然后对文件进行相应的操作
PS:如果有了以上软件,无须自己再去创建文件和文件夹,而是直接传递 命令 给上述软件,让其来进行文件操作,他们统称为数据库管理系统(DBMS,Database Management System)
3、什么是SQL ?
答:上述提到MySQL等软件可以接受命令,并做出相应的操作,由于命令中可以包含删除文件、获取文件内容等众多操作,对于编写的命令就是是SQL语句。SQL????????,是????????????????????????????结构化语言(Structured Query Language????????)的缩写,SQL????????????????????????????????是一种专门用来与数据库通信的语言。
二、下载安装
MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下公司。MySQL 最流行的关系型数据库管理系统,在 WEB 应用方面MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一。
想要使用MySQL来存储并操作数据,则需要做几件事情:
a. 安装MySQL服务端
b. 安装MySQL客户端
b. 【客户端】连接【服务端】
c. 【客户端】发送命令给【服务端MySQL】服务的接受命令并执行相应操作(增删改查等)
下载 http://dev.mysql.com/downloads/mysql/ 安装 windows: 点点点 Linux: yum install mysql-server Mac: 点点点
Window版本
1、下载
![技术分享](/upload/getfiles/default/2022/11/4/20221104022333599.jpg)
![技术分享](/upload/getfiles/default/2022/11/4/20221104022333722.jpg)
MySQL Community Server 5.7.16 http://dev.mysql.com/downloads/mysql/
2、解压
如果想要让MySQL安装在指定目录,那么就将解压后的文件夹移动到指定目录,如:C:\mysql-5.7.16-winx64
3、初始化
MySQL解压后的 bin 目录下有一大堆的可执行文件,执行如下命令初始化数据:
![技术分享](/upload/getfiles/default/2022/11/4/20221104022333599.jpg)
![技术分享](/upload/getfiles/default/2022/11/4/20221104022333722.jpg)
cd c:\mysql-5.7.16-winx64\bin mysqld --initialize-insecure
4、启动MySQL服务
执行命令从而启动MySQL服务
![技术分享](/upload/getfiles/default/2022/11/4/20221104022333599.jpg)
![技术分享](/upload/getfiles/default/2022/11/4/20221104022333722.jpg)
# 进入可执行文件目录 cd c:\mysql-5.7.16-winx64\bin # 启动MySQL服务 mysqld
5、启动MySQL客户端并连接MySQL服务
由于初始化时使用的【mysqld --initialize-insecure】命令,其默认未给root账户设置密码
# 进入可执行文件目录 cd c:\mysql-5.7.16-winx64\bin # 连接MySQL服务器 mysql -u root -p # 提示请输入密码,直接回车
输入回车,见下图表示安装成功:
到此为止,MySQL服务端已经安装成功并且客户端已经可以连接上,以后再操作MySQL时,只需要重复上述4、5步骤即可。但是,在4、5步骤中重复的进入可执行文件目录比较繁琐,如想日后操作简便,可以做如下操作。
a. 添加环境变量
将MySQL可执行文件添加到环境变量中,从而执行执行命令即可
【右键计算机】--》【属性】--》【高级系统设置】--》【高级】--》【环境变量】--》【在第二个内容框中找到 变量名为Path 的一行,双击】 --> 【将MySQL的bin目录路径追加到变值值中,用 ; 分割】 如: C:\Program Files (x86)\Parallels\Parallels Tools\Applications;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\;C:\Python27;C:\Python35;C:\mysql-5.7.16-winx64\bin
如此一来,以后再启动服务并连接时,仅需:
# 启动MySQL服务,在终端输入 mysqld # 连接MySQL服务,在终端输入: mysql -u root -p
b. 将MySQL服务制作成windows服务
上一步解决了一些问题,但不够彻底,因为在执行【mysqd】启动MySQL服务器时,当前终端会被hang住,那么做一下设置即可解决此问题:
# 制作MySQL的Windows服务,在终端执行此命令: "c:\mysql-5.7.16-winx64\bin\mysqld" --install # 移除MySQL的Windows服务,在终端执行此命令: "c:\mysql-5.7.16-winx64\bin\mysqld" --remove
注册成服务之后,以后再启动和关闭MySQL服务时,仅需执行如下命令:
# 启动MySQL服务 net start mysql # 关闭MySQL服务 net stop mysql
Linux版本
安装:
1
|
yum install mysql
-
server
|
服务端启动
1
|
mysql.server start
|
客户端连接
1
2
3
4
5
6
7
|
连接:
mysql -h host -u
user -p
常见错误:
ERROR 2002 (HY000): Can
‘t connect to local MySQL server through socket ‘
/tmp/mysql.sock‘ (2), it means that the MySQL server daemon (Unix)
or service (Windows) is not running. 退出:
QUIT 或者 Control+D
|
三、数据库操作
1、显示数据库
1
|
SHOW DATABASES;
|
默认数据库:
mysql - 用户权限相关数据
test - 用于用户测试数据
information_schema - MySQL本身架构相关数据
2、创建数据库
1
2
3
4
5
|
# utf-8
CREATE DATABASE 数据库名称 DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
# gbk
CREATE DATABASE 数据库名称 DEFAULT CHARACTER SET gbk COLLATE gbk_chinese_ci;
|
3、使用数据库
1
|
USE db_name;
|
显示当前使用的数据库中所有表:SHOW TABLES;
4、用户管理
1
2
3
4
5
6
7
8
9
10
|
创建用户
create user
‘用户名‘
@
‘IP地址‘ identified by ‘密码‘ ; 删除用户
drop user
‘用户名‘
@
‘IP地址‘
;
修改用户
rename user
‘用户名‘
@
‘IP地址‘
; to
‘新用户名‘
@
‘IP地址‘
;;
修改密码
set password
for ‘用户名‘ @ ‘IP地址‘ = Password( ‘新密码‘ ) PS:用户权限相关数据保存在mysql数据库的user表中,所以也可以直接对其进行操作(不建议)
|
5、授权管理
1
2
3
|
show grants
for ‘用户‘ @ ‘IP地址‘ -- 查看权限 grant 权限 on 数据库.表 to
‘用户‘
@
‘IP地址‘ -- 授权 revoke 权限 on 数据库.表 from
‘用户‘
@
‘IP地址‘ -- 取消权限 |
原文:http://www.cnblogs.com/ld1977/p/7258625.html
内容总结
以上是互联网集市为您收集整理的Django ORM------Mysql全部内容,希望文章能够帮你解决Django ORM------Mysql所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。