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 相关文章推荐
Python实现图片转字符画的示例代码
Aug 21 Python
Python进程间通信之共享内存详解
Oct 30 Python
浅谈python数据类型及类型转换
Dec 18 Python
详解python 拆包可迭代数据如tuple, list
Dec 29 Python
Python图片的横坐标汉字实例
Dec 04 Python
Python使用QQ邮箱发送邮件报错smtplib.SMTPAuthenticationError
Dec 20 Python
python实现从尾到头打印单链表操作示例
Feb 22 Python
Jupyter notebook 远程配置及SSL加密教程
Apr 14 Python
python缩进长度是否统一
Aug 02 Python
Python利用Faiss库实现ANN近邻搜索的方法详解
Aug 03 Python
python字典与json转换的方法总结
Dec 28 Python
python基于tkinter制作m3u8视频下载工具
Apr 24 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
PHP 处理图片的类实现代码
2009/10/23 PHP
php中神奇的fastcgi_finish_request
2011/05/02 PHP
CI框架源码阅读,系统常量文件constants.php的配置
2013/02/28 PHP
PHP Switch 语句之学习笔记
2013/09/21 PHP
PHP导出Excel实例讲解
2016/01/24 PHP
CodeIgniter 完美解决URL含有中文字符串
2016/05/13 PHP
PHP开发的微信现金红包功能示例
2017/06/29 PHP
阿里云Win2016安装Apache和PHP环境图文教程
2018/03/11 PHP
利用javascript查看html源文件
2006/11/08 Javascript
jQuery 1.4 15个你应该知道的新特性(译)
2010/01/24 Javascript
jQuery 版元素拖拽原型代码
2011/04/25 Javascript
JavaScript实现级联菜单的方法
2015/06/29 Javascript
实例剖析AngularJS框架中数据的双向绑定运用
2016/03/04 Javascript
bootstrap模态框跳转到当前模板页面 框消失了而背景存在问题的解决方法
2020/11/30 Javascript
js遍历获取表格内数据的方法(必看)
2017/04/06 Javascript
轻量级富文本编辑器wangEditor结合vue使用方法示例
2018/10/10 Javascript
js使用formData实现批量上传
2020/03/27 Javascript
详解element-ui设置下拉选择切换必填和非必填
2019/06/17 Javascript
详解使用WebPack搭建React开发环境
2019/08/06 Javascript
Javascript操作select控件代码实例
2020/02/14 Javascript
python实现的一只从百度开始不断搜索的小爬虫
2013/08/13 Python
python将xml xsl文件生成html文件存储示例讲解
2013/12/03 Python
Python中集合类型(set)学习小结
2015/01/28 Python
python模拟enum枚举类型的方法小结
2015/04/30 Python
python实现TCP服务器端与客户端的方法详解
2015/04/30 Python
Python中死锁的形成示例及死锁情况的防止
2016/06/14 Python
最大K个数问题的Python版解法总结
2016/06/16 Python
Pythony运维入门之Socket网络编程详解
2019/04/15 Python
用python wxpy管理微信公众号并利用微信获取自己的开源数据
2019/07/30 Python
Python 实现文件读写、坐标寻址、查找替换功能
2019/09/11 Python
PyTorch中的Variable变量详解
2020/01/07 Python
解决pycharm导入numpy包的和使用时报错:RuntimeError: The current Numpy installation (‘D:\\python3.6\\lib\\site-packa的问题
2020/12/08 Python
Mio Skincare英国官网:身体紧致及孕期身体护理
2018/08/19 全球购物
super关键字的用法
2012/04/10 面试题
节约能源标语
2014/06/17 职场文书
幼儿园园务工作总结2015
2015/05/18 职场文书