python django系列(三)

发布时间:2019-08-11 11:27:38编辑:auto阅读(1104)

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

    安装:

    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'),

     

关键字