被解放的姜戈02 庄园疑云

姜戈通过Django框架与MySQL数据库建立连接,学习如何创建模型以操作数据库,掌握关系型数据库在Django下的应用。

  上一回说到,姜戈的江湖初体验:如何架设服务器,如何回复http请求,如何创建App。这一回,我们要走入糖果庄园。

  数据库是一所大庄园,藏着各种宝贝。一个没有数据库的网站,所能提供的功能会非常有限。

  

  为了找到心爱的人,姜戈决定一探这神秘的糖果庄园。

  连接数据库

  Django为多种数据库后台提供了统一的调用API。根据需求不同,Django可以选择不同的数据库后台。MySQL算是最常用的数据库。我们这里将Django和MySQL连接。

  在Linux终端下启动mysql:

  $mysql -u root -p

  在MySQL中创立Django项目的数据库:

  mysql> CREATE DATABASE villa DEFAULT CHARSET=utf8;

  这里使用utf8作为默认字符集,以便支持中文。

  在MySQL中为Django项目创立用户,并授予相关权限:

  mysql> GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER, CREATE TEMPORARY TABLES, LOCK TABLES ON villa.* TO 'vamei'@'localhost' IDENTIFIED BY 'vameiisgood';

  在settings.py中,将DATABASES对象更改为:

  

复制代码

  DATABASES = {

  'default': {

  'ENGINE': 'django.db.backends.mysql',

  'NAME': 'villa',

  'USER': 'vamei',

  'PASSWORD': 'vameiisgood',

  'HOST':'localhost',

  'PORT':'3306',

  }

  }

  

复制代码

  后台类型为mysql。上面包含数据库名称和用户的信息,它们与MySQL中对应数据库和用户的设置相同。Django根据这一设置,与MySQL中相应的数据库和用户连接起来。此后,Django就可以在数据库中读写了。

  姜戈略一迟疑,旋即走入了庄园的大门。

  创立模型

  MySQL是关系型数据库。但在Django的帮助下,我们不用直接编写SQL语句。Django将关系型的表(table)转换成为一个类(class)。而每个记录(record)是该类下的一个对象(object)。我们可以使用基于对象的方法,来操纵关系型的MySQL数据库。

  在传统的MySQL中,数据模型是表。在Django下,一个表为一个类。表的每一列是该类的一个属性。在models.py中,我们创建一个只有一列的表,即只有一个属性的类:

  from django.db import models

  class Character(models.Model):

  name = models.CharField(max_length=200)

  def __unicode__(self):

  return self.name

  类Character定义了数据模型,它需要继承自models.Model。在MySQL中,这个类实际上是一个表。表只有一列,为name。可以看到,name属性是字符类型,最大长度为200。

  类Character有一个__unicode__()方法,用来说明对象的字符表达方式。如果是Python 3,定义__str__()方法,实现相同的功能。

  命令Django同步数据库。Django根据models.py中描述的数据模型,在MySQL中真正的创建各个关系表:

  $python manage.py syncdb

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值