django连接mysql数据库和操作数据库


最近看了下django框架,默认使用的是sqlite3,管理的话不是很方便,所以想改成MySQL,遇坑就记录一下

目前用的是python3.5好多的之前的mysql扩展根本用不了,搜了一顿找到了下面的这个包(解压使用命令行

python setup.py install
 
 
  • 1
  • 1

就可以安装 
)。 
安装完成就是进行配置,在settings.py中修改配置如下:

# Database
# https://docs.djangoproject.com/en/dev/ref/settings/#databases

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql', 
        'NAME': 'django',    #你的数据库名称
        'USER': 'root',   #你的数据库用户名
        'PASSWORD': '', #你的数据库密码
        'HOST': '', #你的数据库主机,留空默认为localhost
        'PORT': '3306', #你的数据库端口
    }
}
 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

以上是说明修改为mysql数据库,另外很重要的一点需要说明的是,python3.5目前不支持mysqlDb,因此前面安装的是PyMysql,但是django默认使用的是mysqlDb,所以需要在init.py文件中加入:

import pymysql 
pymysql.install_as_MySQLdb()
 
 
  • 1
  • 2
  • 1
  • 2

代表使用pymysql代替mysqlDb

以上,在按照官方文档就可以使用mysql支持的django框架了

pymysql文件包如下: 
地址:链接: http://pan.baidu.com/s/1qXYkCZq 密码: jefd

  • 操作:

  • 增加:创建实例,并调用save

  • 更新:a.获取实例,再sava;b.update(指定列)

  • 删除:a. filter().delete(); b.all().delete()

  • 获取:a. 单个=get(id=1) ;b. 所有 = all()

  • 过滤:filter(name='xxx');filter(name__contains='');(id__in = [1,2,3]) ;
    icontains(大 小写无关的LIKE),startswith和endswith, 还有range(SQLBETWEEN查询)'gt', 'in', 'isnull', 'endswith', 'contains', 'lt', 'startswith', 'iendswith', 'icontains','range', 'istartswith'

  • 排序:order_by("name") =asc ;order_by("-name")=desc

  • 返回第n-m条:第n条[0];前两条[0:2]

  • 指定映射:values

  • 数量:count()

  • 聚合:from django.db.models import Min,Max,Sum objects.all().aggregate(Max('guest_id'))

  • 原始SQL

    1
    2
    3
    cursor  = connection.cursor()
    cursor.execute('' 'SELECT DISTINCT first_name ROM people_person WHERE last_name = %s""", [' Lennon'])
    row  = cursor.fetchone() 





  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值