Python之django(二)

作者:Vamei 出處:http://www.cnblogs.com/vamei 歡迎轉(zhuǎn)載,也請保留這段聲明。謝謝!

連接數(shù)據(jù)庫:

1、安裝mysql-server 與python-mysqldb驅(qū)動
# sudo apt-get install mysql-server python-mysqldb
# 安裝mysql-server時會讓設(shè)置root@localhost的用戶密碼
2、啟動mysqldb
# sudo service mysql start
3、連接mysql,創(chuàng)建數(shù)據(jù)庫,創(chuàng)建權(quán)限用戶
# create database villa default charset=utf8;
# grant all privileges on villa.* to 'admin'@'localhost' identified by 'admin123';
# flush privileges;
修改django的setting.py配置文件:
# vim mysite/setting.py
# DATABASES = {
# 'default': {
# 'ENGINE': 'django.db.backends.mysql',
# 'NAME': 'villa',
# 'USER': 'admin',
# 'PASSWORD: 'admin123',
# 'HOST': 'localhost',
# 'PORT': '3306',
# }
# }
# django就可以在mysql數(shù)據(jù)庫中讀寫數(shù)據(jù)

創(chuàng)立模型:

MySQL是關(guān)系型數(shù)據(jù)庫。但在Django的幫助下,我們不用直接編寫SQL語句。Django將關(guān)系型的表(table)轉(zhuǎn)換成為一個類(class)。而每個記錄(record)是該類下的一個對象(object)。我們可以使用基于對象的方法,來操縱關(guān)系型的MySQL數(shù)據(jù)庫。
注意:python3.4不支持MySQLdb,需要安裝pymysql
# sudo pip install pymysql //否則會報錯(Error No module named MySQLdb)
# vim mysite/init.py
# import pymysql
# pymysql.install_as_MySQLdb()

python將數(shù)據(jù)庫每個表表述為一個類,那表中的每一列即為這個類的屬性,每一行數(shù)據(jù)即為此類實(shí)例化出來的對象。
在models.py創(chuàng)建一個只有一列的表,即類只有一個屬性。
# vim west/models.py
# from django.db import models
# class Character(models.Model):
# name = models.CharField(max_length=200)
# def str(self): //python2.* 用unicode,python3.*用str,否則后面顯示不正確
# return self.name
接著采用django命令同步數(shù)據(jù)庫,根據(jù)models.py中的數(shù)據(jù)類型創(chuàng)建表關(guān)系
# python3.4 manage.py syncdb //會提示創(chuàng)建超級用戶
# python3.4 manage.py makemigrations west
# python3.4 manage.py migrate
數(shù)據(jù)模型建立完成,采用mysql客戶端命令連接檢查:
# mysql> use villa;
# mysql> show tables;
# +----------------------------+
# | Tables_in_villa |
# +----------------------------+
# | auth_group |
# | auth_group_permissions |
# | auth_permission |
# | auth_user |
# | auth_user_groups |
# | auth_user_user_permissions |
# | django_admin_log |
# | django_content_type |
# | django_migrations |
# | django_session |
# | west_character |
# +----------------------------+
# 11 rows in set (0.00 sec)
# mysql> show columns from west_character;
# +-------+--------------+------+-----+---------+----------------+
# | Field | Type | Null | Key | Default | Extra |
# +-------+--------------+------+-----+---------+----------------+
# | id | int(11) | NO | PRI | NULL | auto_increment |
# | name | varchar(200) | NO | | NULL | |
# +-------+--------------+------+-----+---------+----------------+

顯示數(shù)據(jù)

首先在mysql客戶端手動插入數(shù)據(jù):
# insert into west_character (name) values ('ruiwen');
# insert into west_character (name) values ('namei');
# insert into west_character (name) values ('fatiao');
修改west/views.py文件,用以在web窗口顯示讀取到mysql數(shù)據(jù)庫的數(shù)據(jù),新增staff方法:
# def staff(request):
# staff_list = Character.objects.all()
# staff_str = map(str, staff_list)
# return HttpResponse("<p>" + ' '.join(staff_str) + "</p>")
添加url訪問路徑:
# vim west/urls.py
# url(r'^staff/','west.views.staff'),
測試訪問:
# neo@neo-virtual-machine:~$ curl http://localhost:8000/west/staff/
# <p>ruiwen namei fatiao</p>

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容