Django数据库类库MySQLdb使用详解


Posted in Python onApril 28, 2019

Django项目要操作数据库,首先要和数据库建立连接,才能让程序中的数据和数据库关联起来进行数据的增删改查操作

Django项目默认使用mysqldb模块进行和mysql数据库之间的交互操作。

下面看下Django进行数据库操作的步骤:

1. 修改settings.py 配置数据项

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

配置项参数用法:

ENGINE : 指定数据库驱动,不同的数据库这个字段不同,下面是常见的集中数据库的ENGINE的写法:

django.db.backends.postgresql  # PostgreSQL 

django.db.backends.mysql       # mysql 

django.db.backends.sqlite3     # sqlite 

django.db.backends.oracle      # oracle 

NAME: 指定的数据库名,如果是sqlite的话,就需要填数据库文件的绝对位置

USER: 数据库登录的用户名,mysql一般都是root

PASSWORD:登录数据库的密码,必须是USER用户所对应的密码

HOST: 由于一般的数据库都是C/S结构的,所以得指定数据库服务器的位置,我们一般数据库服务器和客户端都是在一台主机上面,所以一般默认都填127.0.0.1

PORT:数据库服务器端口,mysql默认为3306

HOST和PORT都可以不填,使用默认的配置,但是如果你有更改默认配置的话,就需要填入更改后的

2. 安装数据库驱动

配置完这,下面就需要装python连接mysql数据库的驱动程序,首先,需要安装mysql的开发包,在shell,里面运行:

rpm -qa | grep mysql-devel

如果没有安装,那就安装把:

sudo yum install mysql-devel 
#python2.7: 
sudo pip install MySQLdb 
#python3.4: 
sudo pip install PyMySQL

安装好后,启动django

python manager.py runserver

如果没有出现报错,则表明配置正常,然后在新的shell运行:

python manager.py shell

输入以下命令:

from django.db import connection 
cursor = connection.cursor()

如果没有报错,则就表明安装成功,你可以尽情使用django的数据库功能了

3. 创建一个Django app

一个项目中包含一个或多个这样的app。app可以理解为一块功能集合。比如产品管理模块就包含增删该查等功能,可以把产品管理叫做一个app。每个Django app都有独立的models,views等,易移植和被复用。

DOS进入项目目录 执行 python manage.py startapp products生成目录文件如下:

代码如下:

products/
  __init__.py
  models.py
  tests.py
  views.py

4. 编写models

代码如下:

from django.db import models
# Create your models here.
class Company(models.Model):
  full_name = models.CharField(max_length=30)
  address = models.CharField(max_length=50)
  tel = models.CharField(max_length=15,blank=True)
class Product(models.Model):
  product_name = models.CharField(max_length=30)
  price = models.FloatField()
  stock = models.IntegerField(max_length=5)
  company = models.ForeignKey(Company)

5. 模型安装(修改settings.py)

代码如下:

INSTALLED_APPS = (
  'django.contrib.auth',
  'django.contrib.contenttypes',
  'django.contrib.sessions',
  'django.contrib.sites',
  'django.contrib.messages',
  'django.contrib.staticfiles',
  'django.contrib.admin',
  'django.contrib.admindocs',
  'DjangoMysqlSite.products',
)

采用 python manage.py validate 检查模型的语法和逻辑是否正确。

没有错误则执行 python manage.py syncdb创建数据表。

现在你可以看到你的数据库除了生成了products_company,products_product外还创建了其它好几个表,这些是django管理后台所需表暂不管。

6、简单的增删改查

进入python manage.py shell

代码如下:

>>> from DjangoMysqlSite.products.models import Company
>>> c = Company(full_name='www.pythontab.com',address='beijing',tel=12345678)
>>> c.save()
>>> company_list = Company.objects.all()
>>> company_list
>>> c = Company.objects.get(full_name="www.pythontab.com")
>>> c.tel = 23456789
>>> c.save()
 
>>> c = Company.objects.get(full_name="www.pythontab.com")
>>> c.delete()
#删除所有
>>> Company.objects.all().delete()

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
在Windows8上的搭建Python和Django环境
Jul 03 Python
Python socket编程实例详解
May 27 Python
python列出目录下指定文件与子目录的方法
Jul 03 Python
python将list转为matrix的方法
Dec 12 Python
python模块之subprocess模块级方法的使用
Mar 26 Python
Python代码使用 Pyftpdlib实现FTP服务器功能
Jul 22 Python
ubuntu 18.04 安装opencv3.4.5的教程(图解)
Nov 04 Python
使用python动态生成波形曲线的实现
Dec 04 Python
python opencv图片编码为h264文件的实例
Dec 12 Python
pytorch实现CNN卷积神经网络
Feb 19 Python
python中使用paramiko模块并实现远程连接服务器执行上传下载功能
Feb 29 Python
Python读写操作csv和excle文件代码实例
Mar 16 Python
Django中如何防范CSRF跨站点请求伪造攻击的实现
Apr 28 #Python
​如何愉快地迁移到 Python 3
Apr 28 #Python
python学习开发mock接口
Apr 28 #Python
Python简单基础小程序的实例代码
Apr 28 #Python
python实现Excel文件转换为TXT文件
Apr 28 #Python
Python3.5模块的定义、导入、优化操作图文详解
Apr 27 #Python
Python3.5内置模块之time与datetime模块用法实例分析
Apr 27 #Python
You might like
介绍几个array库的新函数 php
2006/12/29 PHP
php防盗链的常用方法小结
2010/07/02 PHP
PHP学习笔记之三 数据库基本操作
2011/01/17 PHP
让CodeIgniter数据库缓存自动过期的处理的方法
2014/06/12 PHP
详解PHP归并排序的实现
2016/10/18 PHP
php微信开发之音乐回复功能
2018/06/14 PHP
PHP的PDO预处理语句与存储过程
2019/01/27 PHP
Laravel中10个有用的用法小结
2019/05/06 PHP
使用JavaScript检测Firefox浏览器是否启用了Firebug的代码
2010/12/28 Javascript
js中如何把字符串转化为对象、数组示例代码
2013/07/17 Javascript
javascript实现二级级联菜单的简单制作
2015/11/19 Javascript
深入理解bootstrap框架之第二章整体架构
2016/10/09 Javascript
利用js来实现缩略语列表、文献来源链接和快捷键列表
2016/12/16 Javascript
BootStrapValidator校验方式
2016/12/19 Javascript
vue自定义指令directive实例详解
2018/01/17 Javascript
浅谈一个webpack构建速度优化误区
2019/06/24 Javascript
解决Layui数据表格的宽高问题
2019/09/28 Javascript
Vue CLI3移动端适配(px2rem或postcss-plugin-px2rem)
2020/04/27 Javascript
微信小程序实现列表左右滑动
2020/11/19 Javascript
使用python分析git log日志示例
2014/02/27 Python
用Python实现换行符转换的脚本的教程
2015/04/16 Python
Django使用Celery异步任务队列的使用
2018/03/13 Python
用Python从0开始实现一个中文拼音输入法的思路详解
2019/07/20 Python
Pygame的程序开始示例代码
2020/05/07 Python
MoviePy简介及Python视频剪辑自动化
2020/12/18 Python
css3动画鼠标放上图片逐渐变大鼠标离开图片逐渐缩小效果
2021/01/27 HTML / CSS
Original Penguin英国官方网站:美国著名休闲时装品牌
2016/10/30 全球购物
澳大利亚家具和家居用品在线商店:Interiors Online
2018/03/05 全球购物
波兰快递服务:Globkurier.pl
2019/11/08 全球购物
简述DNS进行域名解析的过程
2013/12/02 面试题
食堂员工工作职责
2013/12/18 职场文书
素质教育标语
2014/06/27 职场文书
高校自主招生自荐信2015
2015/03/04 职场文书
婚宴祝酒词大全
2015/08/10 职场文书
端午节将至,用Python爬取粽子数据并可视化,看看网友喜欢哪种粽子吧!
2021/06/11 Python
JavaScript 事件捕获冒泡与捕获详情
2021/11/11 Javascript