python——django使用mysql数据库(二)
上一篇中,我们已经讲述了如何初始化一个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数据库(二)的更多相关文章
- python——django使用mysql数据库(一)
之前已经写过如何创建一个django项目,现在我们已经有了一个小骷髅,要想这个web工程变成一个有血有肉的人,我们还需要做很多操作.现在就先来介绍如何在django中使用mysql数据库. 前提:已经 ...
- Python Django配置Mysql数据库
1 在项目中找到setting文件 打开 2 在里面找到 3 将Databases里面的数据改成 DATABASES = { 'default': { #引擎设置为Mysql 'ENGINE': 'd ...
- MySQL实验准备(二)--Python模拟数据(MySQL数据库)
Python模拟数据(MySQL数据库) 数据模拟 目的:模拟多个表的插入和查询数据的模拟,再通过基准测试脚本测试服务器性能和收集数据,仿真模拟. 备注: 如果需要基础的python环境,可以查看&l ...
- Python3:Django连接Mysql数据库时出错,'Did you install mysqlclient or MySQL-python?'
Python3:Django连接Mysql数据库时出错,'Did you install mysqlclient or MySQL-python?' 一.原因 因为Python版本问题,MySQLdb ...
- DJango配置mysql数据库以及数据库迁移
DJango配置mysql数据库以及数据库迁移 一.Django 配置MySQL数据库 在settings.py中配置 import pymysql # 配置MySQL pymysql.install ...
- Python3之Django连接mysql数据库
一.mysql服务器 系统版本:CentOS6.8 IP :10.0.0.51 版本 1.授权root远程登录 grant all on *.* to 'root'@'%' identifide by ...
- Django配置Mysql数据库 (Pycharm)
Django配置MySQL数据库方法 一.settings.py文件中修改数据库配置为下面的内容: # Database # https://docs.djangoproject.com/en/2.0 ...
- django学习-10.django连接mysql数据库和创建数据表
1.django模型 Django对各种数据库提供了很好的支持,包括:PostgreSQL.MySQL.SQLite.Oracle. Django为这些数据库提供了统一的调用API. 我们可以根据自己 ...
- 第一篇:Win10系统搭建Python+Django+Nginx+MySQL 开发环境详解(完美版)
Win10+Python+Django+Nginx+MySQL 开发环境搭建详解 PaulTsao 说明:本文由作者原创,仅供内部参考学习与交流,转载引用请注明出处,用于商业目的请联系作者本人. Wi ...
随机推荐
- VMWare虚拟机NAT上网方法 亲测可用
首先虚拟机的网卡要选择NAT 然后 在Virtual Network Editor中一定选上DHCP功能. 还要主机的服务必须开启.主机的VMnet8对应NAT模式,这个VMnet8的配置保持默认不要 ...
- java多线程 生产者消费者模式
package de.bvb; /** * 生产者消费者模式 * 通过 wait() 和 notify() 通信方法实现 * */ public class Test1 { public static ...
- MySQL使用规范
一. 表设计类 强制类规范 1. 创建表的存储引擎必须是InnoDB. 2. 每个表必须显式的指定一个主键. 3. 不允许使用联合主键. 4. 不允许使用外键. 5. 不允许存在和主键重复的索引 ...
- CSS中的浮动
这是一个重点内容,在做网页布局的时候,经常用到,所以在这里单独将其列出来小结!
- Dagger2 使用初步
Dagger2 是一个Android依赖注入框架,由谷歌开发,最早的版本Dagger1 由Square公司开发.依赖注入框架主要用于模块间解耦,提高代码的健壮性和可维护性.Dagger 这个库的取名不 ...
- C++多线程の条件变量
如果有一个队列,方法一和方法二:方法一是生产者,方法二是消费者: 两者不停的相互等待,加减锁,为了减少不必要的等待,我们可以使用条件变量, 条件的变量的第二个参数的加入可以控制多个线程的"消 ...
- x86和x64的区别
整理了下网上的资料,归类了下,大似表述是这样的:IBM/PC兼容机,也就是Intel的i80x86指令架构,就简称了x86.x86并不是指32位环境,而是指80x86架构,这个架构目前有32位,64位 ...
- InfoPackage的更新模式
声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...
- TFS二次开发系列:二、TFS的安装
本系列的实例将采用TFS 2012+Sql Server2012编写. TFS的完整版本安装最好是在Windows server2008 64位以上版本中,其包括64位的SQL SERVER 2012 ...
- 使用idea15搭建基于maven的springmvc-mybatis框架
我这边使用的是intellij idea15 1.new maven webapp project 2.添加groupId和artifactId 3.选择maven路径和maven仓库路径 最后确定之 ...