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     # 同步到数据库

 

 

 

 

 

 

 

 

 

 

      

posted @ 2019-01-28 06:20  孔雀东南飞  阅读(493)  评论(0编辑  收藏  举报