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实现bitmap数据结构详解
Feb 17 Python
Python3基础之函数用法
Aug 13 Python
python中map、any、all函数用法分析
Apr 21 Python
自动化Nginx服务器的反向代理的配置方法
Jun 28 Python
Python中py文件引用另一个py文件变量的方法
Apr 29 Python
django框架模板中定义变量(set variable in django template)的方法分析
Jun 24 Python
Pytorch抽取网络层的Feature Map(Vgg)实例
Aug 20 Python
用Python绘制漫步图实例讲解
Feb 26 Python
浅谈django 模型类使用save()方法的好处与注意事项
Mar 28 Python
Keras中的多分类损失函数用法categorical_crossentropy
Jun 11 Python
3分钟看懂Python后端必须知道的Django的信号机制
Jul 26 Python
Pythonic版二分查找实现过程原理解析
Aug 11 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小偷的核心程序
2007/04/09 PHP
php中如何同时使用session和cookie来保存用户登录信息
2013/07/05 PHP
ThinkPHP模板之变量输出、自定义函数与判断语句用法
2014/11/01 PHP
利用PHP函数计算中英文字符串长度的方法
2014/11/11 PHP
PHP延迟静态绑定的深入讲解
2018/04/02 PHP
windows系统下简单nodejs安装及环境配置
2013/01/08 NodeJs
JavaScript图片放大技术(放大镜)实现代码分享
2013/11/14 Javascript
jquery实现html页面 div 假分页有原理有代码
2014/09/06 Javascript
谈谈我对JavaScript原型和闭包系列理解(随手笔记6)
2015/12/20 Javascript
javascript新闻跑马灯实例代码
2020/07/29 Javascript
jQuery.Form上传文件操作
2017/02/05 Javascript
jQuery插件FusionWidgets实现的Bulb图效果示例【附demo源码下载】
2017/03/23 jQuery
vue2.0之多页面的开发的示例
2018/01/30 Javascript
vue2.0模拟锚点的实例
2018/03/14 Javascript
react使用CSS实现react动画功能示例
2020/05/18 Javascript
[22:20]初生之犊-TI4第5名LGD战队纪录片
2014/08/13 DOTA
python引用DLL文件的方法
2015/05/11 Python
学习python 之编写简单乘法运算题
2016/02/27 Python
Scrapy抓取京东商品、豆瓣电影及代码分享
2017/11/23 Python
pygame游戏之旅 添加icon和bgm音效的方法
2018/11/21 Python
pyqt5之将textBrowser的内容写入txt文档的方法
2019/06/21 Python
Python日志syslog使用原理详解
2020/02/18 Python
openCV提取图像中的矩形区域
2020/07/21 Python
CSS3的calc()做响应模式布局的实现方法
2017/09/06 HTML / CSS
车库门开启器、遥控器和零件:Chamberlain
2019/04/09 全球购物
英国的一家创新礼品和小工具零售商:Menkind
2019/08/24 全球购物
银行会计职员个人的自我评价
2013/09/29 职场文书
大学生新闻专业个人自我评价
2013/11/12 职场文书
公司清洁工岗位职责
2013/12/14 职场文书
优良学风班申请材料
2014/02/13 职场文书
物流管理专业毕业生求职信
2014/03/23 职场文书
小学学雷锋活动总结
2014/04/25 职场文书
幼儿园教师求职信
2015/03/20 职场文书
运动会表扬稿范文
2015/05/05 职场文书
2016年教师师德师风承诺书
2016/03/25 职场文书
Python排序算法之插入排序及其优化方案详解
2021/06/11 Python