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

来源:互联网 发布:道路平面图绘制软件 编辑:程序博客网 时间:2024/05/16 09:23


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

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

python setup.py install
  • 1
  • 1

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

# Database# https://docs.djangoproject.com/en/dev/ref/settings/#databasesDATABASES = {    '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 0