Python之django(二)

作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明。谢谢!

连接数据库:

1、安装mysql-server 与python-mysqldb驱动
# sudo apt-get install mysql-server python-mysqldb
# 安装mysql-server时会让设置root@localhost的用户密码
2、启动mysqldb
# sudo service mysql start
3、连接mysql,创建数据库,创建权限用户
# 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数据库中读写数据

创立模型:

MySQL是关系型数据库。但在Django的帮助下,我们不用直接编写SQL语句。Django将关系型的表(table)转换成为一个类(class)。而每个记录(record)是该类下的一个对象(object)。我们可以使用基于对象的方法,来操纵关系型的MySQL数据库。
注意:python3.4不支持MySQLdb,需要安装pymysql
# sudo pip install pymysql //否则会报错(Error No module named MySQLdb)
# vim mysite/init.py
# import pymysql
# pymysql.install_as_MySQLdb()

python将数据库每个表表述为一个类,那表中的每一列即为这个类的属性,每一行数据即为此类实例化出来的对象。
在models.py创建一个只有一列的表,即类只有一个属性。
# 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命令同步数据库,根据models.py中的数据类型创建表关系
# python3.4 manage.py syncdb //会提示创建超级用户
# python3.4 manage.py makemigrations west
# python3.4 manage.py migrate
数据模型建立完成,采用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 | |
# +-------+--------------+------+-----+---------+----------------+

显示数据

首先在mysql客户端手动插入数据:
# 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数据库的数据,新增staff方法:
# def staff(request):
# staff_list = Character.objects.all()
# staff_str = map(str, staff_list)
# return HttpResponse("

" + ' '.join(staff_str) + "

")
添加url访问路径:
# vim west/urls.py
# url(r'^staff/','west.views.staff'),
测试访问:
# neo@neo-virtual-machine:~$ curl http://localhost:8000/west/staff/
#

ruiwen namei fatiao


Python之django(二)_第1张图片

你可能感兴趣的:(Python之django(二))