python+django对数据库的支持是非常多的。可以使用默认的sqlite数据库。python3.4.2已经集成了sqlite3数据库。
我们这里演示一下怎么连接mysql数据库。
要连接mysql数据库必须要安装一个我称之为中间件。如果是3.2之前的版本。可以使用MySQLdb来连接。因为我这里安装的是3.4.2版本,这个版本连接mysql有一定的区别。需要使用pymysql来连接。下载地址在这里:
这是一个开源的工程。
下载完了之后我们可以在控制台使用python setup.py install将库文件安装到python中。
MySQLdb的安装是可以直接运行的。
Django约定必须要创建app才能使用模型。
Django认为一个project包含很多个Django app,project提供配置文件,比如数据库连接信息、 安装的app清单、模板路径等等;而一个app是一套Django功能的集合,通常包括模型和视图,按Python的包结构的方式存在。
app可以在多个project之间很容易的复用。比如Django自带的注释系统和自动管理界面。
创建应用的脚本也是使用project目录下的managy.py:
$python manage.py startapp app1
这样就会在工程目录下创建一个app1命名的文件夹:
文件目录如下:
这里本来是有一个migrations文件夹。这里会影响ORM的生成。所以我们删去这个文件夹。
我们编辑models.py:
from django.db import models
class Product(models.Model):
title = models.CharField(max_length=100)
description = models.TextField()
image_url = models.CharField(max_length=200)
price = models.DecimalField(max_digits=8,decimal_places=2)
创建一个模型叫Product以及对应的属性。
接下来配置数据库的连接:
在settings.py文件做如下修改:
配置好与数据库之间的连接。
接下来我们验证一下:
$python manage.py validate/check
之前的版本使用validate后来被废弃掉使用check来做校验。没有错误之后我们就可以连接数据库。
$ python manage.py syncdb
这里有可能会有问题。可能会报找不到Module 'MySQLdb'
因为我们这里使用的是PyMySQL,而django1.8(我当前的版本)默认是使用MySQLdb。
我们找到使用的地方:
在Python安装目录Lib\site-packages\Django-1.8-py3.4.egg\django\db\backends\mysql对应的文件夹下有一个base.py这里是连接数据库具体的代码。我们可以讲这个模块里边的MySQLdb全部替换为pymysql。
然后再执行:$ python manage.py syncdb
就会发现我们的模型已经导入到数据库里边了。
这样我们就可以使用django和python连接mysql数据库进行操作。