1闽巩、使用終端命令啟動(dòng)mysql
mysql -u root -p
2、在MySql中創(chuàng)建Django項(xiàng)目的數(shù)據(jù)庫(kù)
mysql>create database haha default charset=utf8;
3禁熏、在MySql中為Django項(xiàng)目,并為其授予相關(guān)權(quán)限
grant select,insert,update,delete,create,drop,index,alter,create temporary tables,lock tables on haha.* to 'liu' identified by '123456';
4邑彪、在weibsite下的setting.py中匹层,將database默認(rèn)的sqlite改為如下:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'haha',
'USER':'liu',
'PASSWORD':'123456',
'HOST':'localhost',
'PORT':'3306',
}
}
5、建立一個(gè)model對(duì)象,在django中升筏,model與數(shù)據(jù)庫(kù)表是關(guān)聯(lián)一起的撑柔,不需要我們寫(xiě)sql建表,model的一個(gè)屬性即為表中的一個(gè)字段您访,現(xiàn)在建立一個(gè)只有一個(gè)字段的表铅忿,也就是只有一個(gè)屬性的model,在blog/models.py中添加如下代碼灵汪。blog即為自己創(chuàng)建的app的name檀训。
from django.db import models
# Create your models here.
class Character(models.Model):
name=models.CharField(max_length=100)
def __unicode__(self):
return self.name
6、然后就可以通過(guò)命令來(lái)同步數(shù)據(jù)庫(kù)了
python manage.py syncdb
然后發(fā)現(xiàn)有錯(cuò)誤出現(xiàn)享言,錯(cuò)誤提示代碼如下
django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module: No module named MySQLdb
原來(lái)是沒(méi)有mysqldb峻凫,就像是java中要連接MySql數(shù)據(jù)庫(kù)要首先導(dǎo)入mysql數(shù)據(jù)庫(kù)驅(qū)動(dòng)的jar包一樣,我們必須要安裝mysqldb览露,也就是下面這個(gè)東西荧琼。
mysqlclient-1.3.6-cp27-none-win32.whl
選擇下載自己需要的版本。
同步數(shù)據(jù)庫(kù)之后差牛,django將建立相關(guān)的數(shù)據(jù)庫(kù)表命锄,同時(shí)會(huì)要求我們創(chuàng)建一個(gè)超級(jí)用戶
在mysql下 通過(guò)show tables命令發(fā)現(xiàn)django已經(jīng)為我們建立了如下表格
并沒(méi)有為我們的model建立表格,原來(lái)同步數(shù)據(jù)庫(kù)之后還需要如下兩條命令偏化。
python manage.py makemigrations blog
python manage.py migrate
7脐恩、這時(shí)再通過(guò)mysql命令
mysql -u liu -p
use haha;
show tables;
show columns from blog_character;
最后以命令的形式返回Character類(lèi)對(duì)應(yīng)的表格
除了我們自己添加的name字段,Django還為我們添加了一個(gè)自增長(zhǎng)的id作為主鍵
insert into blog_character (name) values ('sunny');
insert into blog_character (name) values ('merigolds');
然后通過(guò)mysql命令:
select * from blog_character;
可以發(fā)現(xiàn)我們成功插入了兩條數(shù)據(jù)
8侦讨、將數(shù)據(jù)顯示到頁(yè)面上
在blog/views.py中添加如下代碼
from django.http import HttpResponse
from blog.models import Character
def staff(request):
staff_list = Character.objects.all()
staff_str = map(str,staff_list)
return HttpResponse("<p>"+' '.join(staff_str)+"</p>")
需要在website/urls.py中配置url路徑
url(r'^staff/','blog.views.staff'),
然后啟動(dòng)服務(wù)器驶冒,在瀏覽器中輸入url。就可以看到數(shù)據(jù)已經(jīng)被顯示出來(lái)了