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 ...
随机推荐
- Centos7下Etcd集群搭建
一.简介 "A highly-available key value store for shared configuration and service discovery." ...
- JS_MediaPlayer类
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN""http://www.w3.org/T ...
- 基于webrtc的资源释放问题(二)
基于webrtc的资源释放问题(二) ——建立连接的过程中意外中断 应用背景: 我们在打电话的时候会不会遇到这种情况?打电话的时候未接通之前挂掉了电话,或者在接通之后建立的连接的过程中挂掉电话? 特别 ...
- 每天一点Android干货-时间与日期、进度条
时间控件TimePicker的使用方法 timePicker.setIs24HourView(true); //设置是否以24小时制显示 timePicker.getCurrentHour(); // ...
- Bootstrap Affix(附加导航(Affix)插件的用法)
原文网址:http://www.runoob.com/bootstrap/bootstrap-affix-plugin.html Bootstrap 附加导航(Affix)插件 附加导航(Affix) ...
- 【前端】使用CSS使元素居中的几种方式
Precondition: <div class="parent"> <div class="item">居中</div> ...
- java正则表达式【大全】
[正则表达式]文本框输入内容控制整数或者小数:^[0-9]+\.{0,1}[0-9]{0,2}$只能输入数字:"^[0-9]*$".只能输入n位的数字:"^\d{n}$& ...
- android Fragment 使用
一 .Fragment的理解 Fragment 与activity 相似,但比activity 多出几个方法 ,Fragment的生命周期小于activity 一个Activity 中可以包含多个Fr ...
- 【iOS实现一个颜色渐变的弧形进度条】
在Github上看到一些进度条的功能,都是通过Core Graph来实现.无所谓正确与否,但是开发效率明显就差很多了,而且运行效率还是值得考究的.其实使用苹果提供的Core Animation能够非常 ...
- 单据UI界面设计开发
1.新建单据界面数据 2.创建数据模型,包括单据.单据行.设置应用缺省特性,每个模型树下只有一个红色项 3.新增动作,系统默认没有弃审支作按钮事件 4. 新增UI Form,选择对应的模型树及表单类别 ...