上一篇中,我们已经讲述了如何初始化一个django数据库,这一章就来讲讲在实际的项目中如何使用我们初始化的数据库呢?

  如还未进行初始化数据库操作,请参考python——django使用mysql数据库(一):http://www.cnblogs.com/Eva-J/p/5139990.html

创建表

  我是先使用mysql的客户端进行表创建的。当然还可以不这样做,等我们讲完下面的内容再回来说。

建立映射关系

  在工程目录下随便找一个位置,创建一个models.py文件(django项目启动的时候会自动去工程目录下面找这个文件,请不要创建与之同名的文件夹,以免django混乱),接下来就是在这个文件中建立与settings文件中配置的db中表的映射了。

   

 #!/usr/bin/env python
#-*-coding:utf-8-*-
__author__ = 'Eva_J'
from django.db import models
class User(models.Model):
class Meta:
db_table = 'user'
id = models.AutoField(max_length=11,db_column='UID',primary_key=True)
userName = models.CharField(max_length=255,db_column='username',blank = False)
passWord = models.CharField(max_length=255,db_column='password',blank = False)
cid = models.IntegerField(max_length=11,db_column='CID',blank = False) class Charactor(models.Model):
class Meta:
db_table = 'charactor'
cid = models.AutoField(max_length=11,db_column='CID',primary_key=True)
charactor = models.CharField(max_length=255,db_column='charactor',blank = False)
hGroup = models.IntegerField(max_length=11,db_column='h_group',blank = False) class Host(models.Model):
class Meta:
db_table = 'host'
hid = models.AutoField(max_length=11,db_column='HID',primary_key=True)
hGroup = models.CharField(max_length=255,db_column='h_group',blank = False)
hUser = models.CharField(max_length=255,db_column='h_user',blank = False)
hPwd = models.CharField(max_length=255,db_column='h_pwd',blank = False)
hostName = models.CharField(max_length=255,db_column='hostname',blank = False) class Monitor(models.Model):
class Meta:
db_table = 'MonitorInfo'
mid = models.AutoField(max_length=11,db_column='MID',primary_key=True)
netStates = models.CharField(max_length=255,db_column='NetStates',blank = False)
ip = models.CharField(max_length=255,db_column='ip',blank = False)
mem = models.CharField(max_length=255,db_column='memo',blank = False)
cpu = models.CharField(max_length=255,db_column='cpu',blank = False)
time = models.CharField(max_length=255,db_column='time',blank = False)

各个字段的示意:

  除了上述字段示意之外,注意一些细节:

    首先,我们创建的这些类就对应了我们数据库中的表,类中的字段就是表的字段。

    第二,这些类都应继承django.db中的models.Model模块。

    第三,我们可以在类中创建一个Meta类指定表名,也可以不创建这个类,这样将会默认类名就是表名。

    第四,我们建立这些映射关系必须和表中的一样,例如是否为空,长度等,如果和表中的设计不符,就会报错。

  现在再回去说,我们如果不使用mysql的客户端或sql语句创建表,而是在django初始化数据表之前,就写好这个文件,在初始化db的时候,这些表就会自动创建。不过在实际的开发中,更多的时候,我们会一边写一边创建新表,所以就把两种方法都写出来好了。

表的使用 

 #增
_obj = {'netStates':HostInfo['NetStates'],'ip':HostInfo['ip'],'mem':HostInfo['memoInfo'],'cpu':HostInfo['cpuInfo'],'time':HostInfo['timeInfo']}
obj = models.Monitor.objects.create(**_obj) #删
models.Charactor.objects.fileter(cid = cID).delete() #改
obj = object()
abj = models.Charactor.objects.get(cid = cID)
obj.cid = ''
obj.save() #查
objLst0 = models.Charactor.objects.filter(cid = cID)

  

python——django使用mysql数据库(二)的更多相关文章

  1. python——django使用mysql数据库(一)

    之前已经写过如何创建一个django项目,现在我们已经有了一个小骷髅,要想这个web工程变成一个有血有肉的人,我们还需要做很多操作.现在就先来介绍如何在django中使用mysql数据库. 前提:已经 ...

  2. Python Django配置Mysql数据库

    1 在项目中找到setting文件 打开 2 在里面找到 3 将Databases里面的数据改成 DATABASES = { 'default': { #引擎设置为Mysql 'ENGINE': 'd ...

  3. MySQL实验准备(二)--Python模拟数据(MySQL数据库)

    Python模拟数据(MySQL数据库) 数据模拟 目的:模拟多个表的插入和查询数据的模拟,再通过基准测试脚本测试服务器性能和收集数据,仿真模拟. 备注: 如果需要基础的python环境,可以查看&l ...

  4. Python3:Django连接Mysql数据库时出错,'Did you install mysqlclient or MySQL-python?'

    Python3:Django连接Mysql数据库时出错,'Did you install mysqlclient or MySQL-python?' 一.原因 因为Python版本问题,MySQLdb ...

  5. DJango配置mysql数据库以及数据库迁移

    DJango配置mysql数据库以及数据库迁移 一.Django 配置MySQL数据库 在settings.py中配置 import pymysql # 配置MySQL pymysql.install ...

  6. Python3之Django连接mysql数据库

    一.mysql服务器 系统版本:CentOS6.8 IP :10.0.0.51 版本 1.授权root远程登录 grant all on *.* to 'root'@'%' identifide by ...

  7. Django配置Mysql数据库 (Pycharm)

    Django配置MySQL数据库方法 一.settings.py文件中修改数据库配置为下面的内容: # Database # https://docs.djangoproject.com/en/2.0 ...

  8. django学习-10.django连接mysql数据库和创建数据表

    1.django模型 Django对各种数据库提供了很好的支持,包括:PostgreSQL.MySQL.SQLite.Oracle. Django为这些数据库提供了统一的调用API. 我们可以根据自己 ...

  9. 第一篇:Win10系统搭建Python+Django+Nginx+MySQL 开发环境详解(完美版)

    Win10+Python+Django+Nginx+MySQL 开发环境搭建详解 PaulTsao 说明:本文由作者原创,仅供内部参考学习与交流,转载引用请注明出处,用于商业目的请联系作者本人. Wi ...

随机推荐

  1. ECshop后台角色权限的添加和分配

    1.在权限文件中配置 2.在需要加权限的文件中加入权限. 例如:d:\ecshop\admin\user_account.php 3.在数据库表 ecs_admin_action中配置 4.会员权限 ...

  2. joson返回数据库的时间格式在前台用js转换

    function ChangeDateFormat(val) { if (val != null) { var date = new Date(parseInt(val.replace("/ ...

  3. cmd常用命令符

    想成为电脑高手必须掌握的八个cmd 命令 http://www.cr173.com/html/3917_1.html ping命令的其他技巧:在一般情况下还可以通过ping对方让对方返回给你的TTL值 ...

  4. System.map文件【转】

    转自:http://blog.csdn.net/david104/article/details/7194185 当运行GNU链接器gld(ld)时若使用了"-M"选项,或者使用n ...

  5. PHP base64

    <?php header('Content-type:text/html;charset=utf-8'); function image_base64($image_file) { // get ...

  6. Curling 2.0

    Description On Planet MM-21, after their Olympic games this year, curling is getting popular. But th ...

  7. mysql优化一 之 优化内容概述及开启慢查日志的相关配置

    1-1数据库优化的目的 首先是为了避免出现页面访问错误(基本有三种) (1)由于数据库连接timeout产生的页面5XX错误 (2)由于慢查询造成页面无法加载 (3)由于阻塞造成的数据无法提交 其次: ...

  8. 常用正则表达式大全,手机、电话、邮箱、身份证(最严格的验证)、IP地址、网址、日期等

    <script type="text/javascript">/* * 手机号码格式 * 只允许以13.15.18开头的号码 * 如:13012345678.15929 ...

  9. 2D空间中判断一点是否在三角形内

    要注意如果是XY坐标轴的2D空间,要取差乘分量z而不是y. 实现原理是,将三角形ABC三个边(AB,BC,CA)分别与比较点判断差乘,如果这3个差乘结果表示的方向一致,说明就在三角形内. 效果: 代码 ...

  10. webstorm2016.2 for mac 安装

    文件来自斯蒂芬周: http://www.sdifenzhou.com/?p=6941&jdfwkey=jmnzy 附上详细安装步骤: