Django 定义数据模型
如何定义数据模型:
(1) 在 MVC 设计模式中,M 表示数据模型 ( Model ),负责业务对象与数据库的映射,我们可以通过应用的 models.py 来定义数据模型
(2) Model 采用了 ORM 技术,将关系型数据库表抽象成面向对象的 Python 类,将表操作转换成类操作,避免了复杂的 SQL 语句编写
[root@localhost web]$ cat blog/models.py from django.db import models
//类名相当于数据表,类的属性相当于表的字段 class Host(models.Model): hostname = models.CharField(max_length=50) ip = models.IPAddressField()
[root@localhost web]$ python manage.py validate # 检查定义的数据模型是否有问题 [root@localhost web]$ python manage.py syncdb # 根据数据模型创建/更新数据库
# 默认使用SQLite数据库,如果要使用别的数据库,需要在项目的setting文件中指定
# 在更新数据库时,会创建一个管理后台,我们需要设置用户名密码,以便后续登录管理后台
如何访问数据库:
[root@localhost web]$ python manage.py dbshell # 进入数据库 sqlite> .help # 查看帮助命令 sqlite> .tables # 查看有哪些表 sqlite> select * from blog_host; # 查询表数据
扩展:如何使用 MySQL 作为数据库
[root@localhost web]$ cat web/settings.py ...... DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', # 指定使用MySQL数据库 'NAME': 'web', # 指定库名 'USER': 'root', # 指定连接MySQL的用户 'PASSWORD': 'xxxx', # 指定连接MySQL的用户密码 'HOST': '127.0.0.1', # 指定MySQL所在的主机 'PORT': '3306', # 指定MySQL端口 } }
[root@localhost web]$ yum install -y MySQL-python.x86_64 # 需要安装MySQLdb模块,用于Django连接MySQL数据库
[root@localhost web]$ cat blog/models.py # 定义数据模型 from django.db import models class Host(models.Model): hostname = models.CharField(max_length=50) ip = models.IPAddressField()
[root@localhost web]$ python manage.py validate # 检查数据模型 [root@localhost web]$ python manage.py syncdb # 同步到数据库