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中查看变量内存地址的方法
May 05 Python
Python加密方法小结【md5,base64,sha1】
Jul 13 Python
使用python编写监听端
Apr 12 Python
浅谈python函数调用返回两个或多个变量的方法
Jan 23 Python
PHP统计代码行数的小代码
Sep 19 Python
python sklearn常用分类算法模型的调用
Oct 16 Python
python opencv实现gif图片分解的示例代码
Dec 13 Python
Python图像处理库PIL的ImageFilter模块使用介绍
Feb 26 Python
如何用Python绘制3D柱形图
Sep 16 Python
如何使用Django Admin管理后台导入CSV
Nov 06 Python
给numpy.array增加维度的超简单方法
Jun 02 Python
Python深度学习之实现卷积神经网络
Jun 05 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
Laravel 自动转换长整型雪花 ID 为字符串的实现
2020/10/27 PHP
toString()一个会自动调用的方法
2010/02/08 Javascript
javascript 二进制运算技巧解析
2012/11/27 Javascript
jquery 滚动条事件简单实例
2013/07/12 Javascript
JavaScript定时器详解及实例
2013/08/01 Javascript
JS组件Bootstrap Table表格多行拖拽效果实现代码
2015/12/08 Javascript
基于jQuery实现选取月份插件附源码下载
2015/12/28 Javascript
JavaScript电子时钟倒计时第二款
2016/01/10 Javascript
jQuery zTree加载树形菜单功能
2016/02/25 Javascript
jquery插件canvaspercent.js实现百分比圆饼效果
2017/07/18 jQuery
Vue开发之watch监听数组、对象、变量操作分析
2019/04/25 Javascript
通过javascript实现扫雷游戏代码实例
2020/02/09 Javascript
vue搜索页开发实例代码详解(热门搜索,历史搜索,淘宝接口演示)
2020/04/11 Javascript
JavaScript异步操作的几种常见处理方法实例总结
2020/05/11 Javascript
ES6中的类(Class)示例详解
2020/12/09 Javascript
通过vue.extend实现消息提示弹框的方法记录
2021/01/07 Vue.js
PHP魔术方法__ISSET、__UNSET使用实例
2014/11/25 Python
asyncio 的 coroutine对象 与 Future对象使用指南
2016/09/11 Python
Python3+django2.0+apache2+ubuntu14部署网站上线的方法
2018/07/07 Python
python 用for循环实现1~n求和的实例
2019/02/01 Python
利用PyQt5+Matplotlib 绘制静态/动态图的实现代码
2020/07/13 Python
快速一键生成Python爬虫请求头
2021/03/04 Python
CSS3中border-radius属性设定圆角的使用技巧
2016/05/10 HTML / CSS
基于HTML5 Canvas 实现弹出框效果
2017/06/05 HTML / CSS
Html5在手机端调用相机的方法实现
2020/05/13 HTML / CSS
澳大利亚领先的皮肤诊所:Skin Matrix(抗衰老、痤疮专家、药妆护肤)
2018/05/20 全球购物
AVI-8手表美国官方商店:AVI-8 USA
2019/04/10 全球购物
机电一体化专业推荐信
2013/12/03 职场文书
应用英语专业自荐信
2014/01/26 职场文书
预备党员公开承诺书
2014/05/28 职场文书
2014年教师节讲话稿5篇
2014/09/10 职场文书
信息与工商管理职业规划范文:为梦想而搏击
2014/09/11 职场文书
2014小学教师个人工作总结
2014/11/10 职场文书
新员工入职感想
2015/08/07 职场文书
python之json文件转xml文件案例讲解
2021/08/07 Python
Html5获取用户当前位置的几种方式
2022/01/18 HTML / CSS