python django系列(三)

2023-01-31 01:01:31 python django 系列

数据库,里面有各种宝贝,一个没有数据库的网站,提供的功能非常有限
连接数据库
Mysql是最常用的数据库,这里将Djangomysql连接。

安装:

easy_install  Mysql-python 或
pip install MySQL-Python
登陆数据库
建库:
CREATE DATABASE villa DEFAULT CHARSET=utf8;
授权:
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER, CREATE TEMPORARY TABLES, LOCK TABLES ON villa.* TO 'vamei'@'localhost' IDENTIFIED BY 'vameiisGood';

在setting.py中,更改database对象

DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'villa',
'USER': 'vamei',
'PASSWord': 'vameiisgood',
'HOST': '/tmp/mysql.sock',
'PORT': '3306',
}
}

指定后台类型为mysql,上面包含数据库用户名,密码,django根据这一设置与数据库连接

创建模型

django将关系型的表转化为一个类,而每个记录则是该类下的一个对象。个表为一个类。表的每一列是该类的一个属性。在models.py中,我们创建一个只有一列的表,即只有一个属性的类

[root@112 west]# cat models.py
from django.db import models
class Character23(models.Model):
name = models.CharField(max_length=200)
def __unicode__(self):
return self.name

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

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

python manage.py syncdb

录入数据

INSERT INTO west_character23 (name) Values ('Vamei');
INSERT INTO west_character23 (name) Values ('Django');
INSERT INTO west_character23 (name) Values ('John');
select * from west_character23;

在west中添加视图

cat views.py
# -*- coding: utf-8 -*-
from django.shortcuts import render
from django.Http import HttpResponse
from west.models import Character23
def staff(request):
staff_list = Character23.objects.all()
staff_str  = map(str, staff_list)
return HttpResponse("<p>" + ' '.join(staff_str) + "</p>")

从west.models中引入了Character23类。通过操作该类,我们可以读取表格中的记录,

为了让http请求能找到上面的程序,west/urls.py增加url导航增加如下一行:

url(r'^staff/', 'west.views.staff'),

 

相关文章