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导出数据到Excel可读取的CSV文件的方法
May 12 Python
Python安装第三方库及常见问题处理方法汇总
Sep 13 Python
python文件特定行插入和替换实例详解
Jul 12 Python
Python实现矩阵加法和乘法的方法分析
Dec 19 Python
python3爬取数据至mysql的方法
Jun 26 Python
对python模块中多个类的用法详解
Jan 10 Python
在pyqt5中QLineEdit里面的内容回车发送的实例
Jun 21 Python
python numpy中cumsum的用法详解
Oct 17 Python
python的Jenkins接口调用方式
May 12 Python
Pycharm的Available Packages为空的解决方法
Sep 18 Python
python 实现Harris角点检测算法
Dec 11 Python
Python中正则表达式对单个字符,多个字符和匹配边界等使用
Jan 27 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
可在线编辑网页文字效果代码(单击)
2013/03/02 Javascript
一个网页标题title的闪动提示效果实现思路
2014/03/22 Javascript
jquery实现的伪分页效果代码
2015/10/29 Javascript
理解 JavaScript Scoping & Hoisting(二)
2015/11/18 Javascript
js获取时间精确到秒(年月日)
2016/03/16 Javascript
vue-resource调用promise取数据方式详解
2017/07/21 Javascript
微信小程序实现流程进度的图样式功能
2018/01/16 Javascript
layui 实现表单和文件上传一起传到后台的例子
2019/09/16 Javascript
jquery实现简易验证插件封装
2020/09/13 jQuery
纯Python开发的nosql数据库CodernityDB介绍和使用实例
2014/10/23 Python
仅用50行代码实现一个Python编写的计算器的教程
2015/04/17 Python
python selenium 获取标签的属性值、内容、状态方法
2018/06/22 Python
matplotlib调整子图间距,调整整体空白的方法
2018/08/03 Python
Python运行不显示DOS窗口的解决方法
2018/10/22 Python
python实现停车管理系统
2018/11/30 Python
在python中pandas读文件,有中文字符的方法
2018/12/12 Python
利用Python的turtle库绘制玫瑰教程
2019/11/23 Python
TensorFlow tf.nn.conv2d_transpose是怎样实现反卷积的
2020/04/20 Python
pandas数据处理之绘图的实现
2020/06/15 Python
HTML 5 标签、属性、事件及浏览器兼容性速查表 附打包下载
2012/10/20 HTML / CSS
酒店前厅员工辞职信
2014/01/08 职场文书
遗体告别仪式答谢词
2014/01/23 职场文书
高中毕业生登记表自我鉴定范文
2014/03/18 职场文书
企业晚会策划方案
2014/05/29 职场文书
文明礼仪标语
2014/06/13 职场文书
学校领导班子群众路线整改措施
2014/09/16 职场文书
教师四风自我剖析材料
2014/09/30 职场文书
班子群众路线教育实践个人对照检查材料思想汇报
2014/09/30 职场文书
应届毕业生自荐信
2015/03/04 职场文书
忠诚与背叛观后感
2015/06/04 职场文书
Node-Red实现MySQL数据库连接的方法
2021/08/07 MySQL
Python实现Excel文件的合并(以新冠疫情数据为例)
2022/03/20 Python
Mybatis-Plus进阶分页与乐观锁插件及通用枚举和多数据源详解
2022/03/21 Java/Android
漫画「请问您今天要来点兔子吗?」最新杂志彩页公开
2022/03/24 日漫
win11无线投屏在哪设置? win11无线投屏功能的使用方法
2022/04/08 数码科技
Go语言的协程上下文的几个方法和用法
2022/04/11 Golang