文章目录

  • Django 与 MySQL
    • Navicat新建数据库
    • 利Navicat修改MySQL密码
    • Django,Excel,MySQL概念对比
    • Django配置使用MySQL
    • Django字段与MySQL字段对比
  • SQL语句操作MySQL数据库
  • MySQLdb的简单使用
  • 使用pymysql (py3.x)

Django 与 MySQL

在Windows平台下,我们可以用Navicat连接MySQL

Navicat新建数据库

利Navicat修改MySQL密码

点击用户,然后点击需要修改的用户名,便可以出现如下界面,进行修改,保存,然后重新登录

Django,Excel,MySQL概念对比

Django配置使用MySQL

Django的默认数据库(位于setting.py)如下,我们需要手动修改一下

修改setting.py如下

DATABASES = {'default':{'ENGINE':django.db.backends.mysql','NAME':'django','HOST':'127.0.0.1','PORT':3306,'USER':'root','PASSWORD':'admin'}
}

之后命令行启动

python manage.py runserver

如果出错,则安装mysqlclient,安装完成后重新启动,可能还会报错,由于没有对mysql进行初始化,我们需要运行一下命令

python manage.py makemigrations
python manage.py migrate

之后重启,根据输出内容在浏览器中输入相应的IP地址 ,如127.0.0.1:8000
进入后是空表,然后我们输入127.0.0.1:8000/admin进去管理界面,然后命令行运行

python manage.py createsuperuser

创建管理员账号,然后重启一下

Django字段与MySQL字段对比

Django MySQL
CharField varchar
TextField longtext
IntegerField int

SQL语句操作MySQL数据库

方法一: 右键数据库名,选择命令行界面,打开如下图

方法二: 也可以使用一下方法(具有命令提示功能)

创建MySQL账号
使用如下语句

CREATE USER 用户名@'允许IP'    IDENTIFIED BY '密码'

允许IP可以是localhost 可以是’%’或者具体IP
修改权限

grant all privileges on *.* to 'root'@localhost

第一个星号表示数据库,第二个星号表示数据表

创建数据库

CREATE DATABASE 数据库名 DEFAULT CHARSET utf8 COLLATE utf8_general_ci;

https://blog.csdn.net/lin_bing110/article/details/80702578

创建表

CREATE TABLE 数据库名.表名称(字段1 字段类型,  字段2 字段类型
};例如
CREATE TABLE demo.users(name varchar(25)
};

或者选择哪个数据库之后,然后再创建

CREATE TABLE users(name varchar(25)
};

向表中插入新数据

INSERT INTO 表名称(字段名1,字段名2)
VALUES            (值1,值2);
UPDATE 表名称
SET 字段名1='字符串',字段名2=数字
WHERE 字段名3 = 值;

删除符合条件的数据

DELETE FROM 表名称
WHERE 字段名1='字符串' AND 字段名2=数字;

MySQLdb的简单使用

from django.shortcuts import render,HttpResponse,redirect
from firstapp.models import People,Article,Comment
from django.template import Context,Template
from firstapp.form import CommentForm
import MySQLdb
def index(request):conn = MySQLdb.connect(host = 'localhost',port = 3306,user = 'root',passwd = 'admin',db = 'django',charset = 'utf8')cursor = conn.cursor()cursor.execute("SELECT * FROM firstapp_article")results = cursor.fetchamany()articles = []for result in results:articles.append({'title':result[1],'content':result[2],'like_counts':result[3],'score':result[4],'createtime':result[5]})context = {}context["articles"] = articlesreturn render(request,'index.html',context)

运行服务器,打开浏览器,会直接显示要查询的数据库中的内容
注意: 通过SQL语句查询数据比较复杂,而model 比较容易

使用pymysql (py3.x)

安装PyMySQL

pip install pymysql

对象类比

访问数据库流程

connection对象

con = pymysql.connect(host = '',port = '',user = '',passwd = '',db = '',charset = 'utf-8' )     

游标对象cursor


one = cur.fetchone()
print(one)
#获取剩余的3条记录
three = cur.fetchmany(3)
print(three)
# 获取剩余所有记录列表
rows = cur.fetchall()
print("表中剩余所有记录:", rows)
print("number of records:", len(rows))结果如下(1, 'aaa')
((2, 'bbb'), (3, 'ccc'), (4, 'ddd'))
表中所有记录: ((5, 'eee'), (6, 'fff'))
number of records: 2

事务回滚

try:cur.execute();   db.commit()print("Success")
except Exception as e:print(e)db.rollback()

execute执行流程

CRUD操作
增加(Create)、读取查询(Retrieve)、更新(Update)和删除(Delete)

import pymysql
conn = pymysql.connect("IP或者域名","mysql账户名","mysql密码","数据库名")
cur = conn.cursor()
#如果表存在,删除表
cur.execute("DROP TABLE IF EXISTS demo")
#建立表 (列名 类型)
cur.execute('CREATE TABLE demo(num int ,str varchar(20));')
#插入
#两种方式均可,但必须用双引号
cur.execute("INSERT INTO demo VALUES(%d, '%s')" % (1,'aaa'))
cur.execute("INSERT INTO demo VALUES(2,'bbb')")
#更新
cur.execute("UPDATE demo SET str ='ccc' where num = 1")
#查询
cur.execute("SELECT * FROM demo")
# 获取所有记录列表
rows = cur.fetchall()
print("表中所有记录:",rows)
print("number of records:",len(rows))
for i in rows:print("num=%s,str=%s" % i)
#提交事务,使上述操作生效
conn.commit()
#关闭游标对象
cur.close()
#关闭数据库连接
conn.close()

连接数据库并查询表

import pymysql# 打开数据库连接,依次为服务器IP,数据库用户名,密码,数据库db = pymysql.connect("IP","root","password","wordpress")# 使用cursor()方法获取操作游标 cursor = db.cursor()
sql = 'select * from wp_users'
try:# 执行SQL语句cursor.execute(sql)# 获取所有记录列表results = cursor.fetchall()for row in results:id = row[0]username = row[1]email = row[4]print("id :",id,"username :",username,"email :",email)
except:print("Error: unable to fetch data")
db.close()

Python与MySQL相关推荐

  1. python链接mysql 判断是否成功_【初学python】使用python连接mysql数据查询结果并显示...

    因为测试工作经常需要与后台数据库进行数据比较和统计,所以采用python编写连接数据库脚本方便测试,提高工作效率,脚本如下(python连接mysql需要引入第三方库MySQLdb,百度下载安装) # ...

  2. python操作mysql数据库实现增删改查

    Python 标准数据库接口为 Python DB-API,Python DB-API为开发人员提供了数据库应用编程接口. Python 数据库接口支持非常多的数据库,你可以选择适合你项目的数据库: ...

  3. python查询mysql中文乱码问题

    相信很多在工作中的Python小伙伴,经常会遇到一些工作上的问题,例如查询mysql中文乱码问题,Python连接mysql数据库时,读取数据库中的中文出现乱码,所有中文都显示为问号了,那么该如何解决 ...

  4. python操作mysql数据库依赖包_python安装mysql的依赖包mysql-python操作

    一般情况下,使用pip命令安装即可: [root@dthost27 ~]# pip install mysql-python 但是在实际工作环境中,往往会安装失败,这是因为系统缺少mysql的相关依赖 ...

  5. Python与MySQL数据库的交互实战

    作者 | Huang supreme 编辑 | 郭芮 图源 | 视觉中国 安装PyMySQL库 如果你想要使用python操作MySQL数据库,就必须先要安装pymysql库,这个库的安装很简单,直接 ...

  6. python连接MySQL并进行数据查询

    python连接MySQL并进行数据查询 #建立数据库的连接 mydb = mysql.connector.connect(host="0.0.0.0",user="ro ...

  7. python mysql 分页_利用python对mysql表做全局模糊搜索并分页实例

    在写django项目的时候,有的数据没有使用模型管理(数据表是动态添加的),所以要直接使用mysql.前端请求数据的时候可能会指定这几个参数:要请求的页号,页大小,以及检索条件. "&quo ...

  8. pythonmysql查询转list_使用Python将Mysql的查询数据导出到文件的方法

    mysql官方提供了很多种connector,其中包括python的connector. 下载地址在:http://dev.mysql.com/downloads/connector/python/ ...

  9. 15.python操作mysql

    15.python操作mysql 导入包 from pymysql import* 1. 创建 Connection 连接 conn=conne(host='192.168.13.130',port= ...

  10. Linux系统Python配置MySQL详细教程

    Linux系统自带Python,且根据系统自带资源来对python配置mysql:安装需要已配置好正确的yum源: 在python未配置mysql的情形下,直接import MySQLdb的提示如下 ...

最新文章

  1. 非线性优化:徒手实现LM算法
  2. 在linux中教你通过NFS实现文件共享
  3. django DateField需要前端传递的格式
  4. python开机号_感知机(python实现)
  5. ACwing 2. 01背包问题(DP)
  6. Mac终端设置,zsh和bash环境变量配置
  7. Spring Cloud——服务发现与注册
  8. 开源API网关系统:Kong简介
  9. SPI(Service Provider Interface)机制
  10. GoWeb开发_Iris框架讲解(二):Get、Post、Put等请求及数据返回格式
  11. BZOJ1185[HNOI2007] 最小矩形覆盖
  12. 《物联网Android程序开发案例式教程》Demo1:线性布局
  13. js距离单位换算_在线单位换算器
  14. 鲜卑族的由来与现在的分布
  15. 获取当前时间精确到毫秒
  16. js去掉url中的域名
  17. mysql error :1114 - The table ‘XXX‘ is full
  18. 牛客网C++刷题《华为机试》
  19. 车载通信——CAN收发器选型(低功耗)
  20. Trust App(高通)

热门文章

  1. php excel cpu高,phpexcel读文件的时候cpu99%
  2. 在git下搭建个人博客
  3. 4.Eclipse的安装和使用
  4. 【自动驾驶】8. MDC通信架构 + DDS + SOME/IP
  5. jQuery学习笔记--JqGrid相关操作 方法列表 备忘 重点讲解(超重要)
  6. C C++编程产生指定范围内的随机数
  7. 绘图: matplotlib核心剖析
  8. opencv 金字塔图像分割
  9. Stanford UFLDL教程 线性解码器
  10. 数字图像处理:第一章 概述