前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >使用Django管理数据库表

使用Django管理数据库表

作者头像
bsbforever
发布2020-08-19 15:55:20
7560
发布2020-08-19 15:55:20
举报
文章被收录于专栏:时悦的学习笔记

上节讲了如何利用Django建立自己的第一个网站

这节讲如何利用Django定义一个数据库的表并同步到MySQL中

最后讲述如何修改表结构

开发环境

操作系统:CentOS 7.3

Python版本 :2.7

Django版本: 1.10.5

操作系统用户:oracle

ORM框架

Django采用ORM模型处理数据库关系

对象-关系映射(Object-Relational Mapping,简称ORM),简单来说就是通过面向对象的方法来映射后端数据库

在后面的实例中会有介绍,它通过 类(class)的方式定义关系型数据库的表结构

首先看下整体的流程

Alt text
Alt text

编辑models.py文件

代码语言:javascript
复制
vim  monitor/models.py

添加oraclelist类

代码语言:javascript
复制
class oraclelist(models.Model):
    ipaddress=models.GenericIPAddressField()
    username=models.CharField(max_length=100)
    password=models.CharField(max_length=100)
    port=models.CharField(max_length=50)
    tnsname=models.CharField(max_length=100)
    version=models.CharField(max_length=100)
    charset=models.CharField(max_length=100)
    ncharset=models.CharField(max_length=100)
    hostname=models.CharField(max_length=100)
    alertpath=models.CharField(max_length=300)
    content=models.CharField(max_length=300)
    monitor_type=models.IntegerField(default=1)
    performance_type=models.IntegerField(default=0)
    hit_type=models.IntegerField(default=1)
    def __unicode__(self):
        return self.tnsname
    class Meta:
        app_label='monitor'
  1. alertpath填写alert日志文件路径
  2. content 填写该数据库用途
  3. monitor_type,performance_type,hit_type 暂时不介绍,大家照写就行
  4. unicode函数中tnsname表示后台显示的时候默认显示tnsname,Python3用str关键字
  5. meta 类填写monitor app名称

Django栏位(Field)和原数据库的对用请参考如下连接

https://docs.djangoproject.com/en/1.11/ref/models/fields/ http://python.usyiyi.cn/translate/django_182/ref/models/fields.html

同步数据库

代码语言:javascript
复制
python manage.py  makemigrations
python manage.py  migrate
Alt text
Alt text

添加该表至admin后台

代码语言:javascript
复制
vim monitor/admin.py

from monitor.models import oraclelist
admin.site.register(oraclelist)

查看admin后台是否显示

Alt text
Alt text

填写需要运维的Oracle数据库信息

Alt text
Alt text

验证添加

Alt text
Alt text

添加完成后可以看到我们添加的信息

可以看到显示的mesarch为tnsname,为在models.py的oracelist类中unicode处定义,大家可根据需要自己修改

修改表结构

从Django前几个版本开始支持自动处理表结构的更改,如添加字段,修改字段类型等

我们只需在models.py文件中进行相应的修改即可

Alt text
Alt text

我们这里通过删除hit_type栏位来模拟下

Alt text
Alt text

可以看到已经更改完成,记得调回来

提示:从上图可以看出更改记录是记录在migrations目录下,每次变更都会新建个文件。

源码地址

源码请查看我的GitHub主页

https://github.com/bsbforever/wechat_monitor

今天介绍了介绍了如何利用Djnago创建一个MySQL的表以及如何修改它。

下期将介绍如何利用Django建立我们的第一个页面

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-05-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 宅必备 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 编辑models.py文件
  • 同步数据库
  • 添加该表至admin后台
  • 填写需要运维的Oracle数据库信息
  • 修改表结构
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档