Django 文档协作翻译小组人手紧缺,有兴趣的朋友可以加入我们,完全公益性质。

交流群:467338606

网站:http://python.usyiyi.cn/django/index.html

将遗留数据库整合到Django

虽然Django最适合用来开发新的应用,但也可以将它整合到遗留的数据库中。Django包含了很多工具,尽可能自动化解决这类问题。

这篇文章假设你了解Django的基础部分,它们在教程中提及。

一旦你的Django环境建立好之后,你可以按照这个大致的流程,整合你的现有数据库。

向Django提供你的数据库参数

你需要告诉Django你的数据库连接参数,以及数据库的名称。请修改DATABASES设置,为’默认’ 连接的以下键赋值:

  • NAME
  • ENGINE
  • USER
  • PASSWORD
  • HOST
  • PORT

自动生成模型

Django自带叫做inspectdb的工具,可以按照现有的数据库创建模型。你可以运行以下命令,并查看输出:

$ python manage.py inspectdb

通过重定向Unix标准输出流来保存文件:

$ python manage.py inspectdb > models.py

这个特性是一个快捷方式,并不是一个确定的模型生成器。详见inspectdb文档 。

一旦你创建好了你的模型,把文件命名为models.py,然后把它放到你应用的Python包中。然后把应用添加到你的INSTALLED_APPS 设置中。

默认情况下,inspectdb创建未被管理的模型。这就是说,模型的Meta类中的managed = False告诉Django不要管理每个表的创建、修改和删除:

class Person(models.Model):id = models.IntegerField(primary_key=True)first_name = models.CharField(max_length=70)class Meta:managed = Falsedb_table = 'CENSUS_PERSONS'

如果你希望Django管理表的生命周期,你需要把managed选项改为 True(或者简单地把它移除,因为True是默认值)。

安装Django核心表

接下来,运行migrate命令来安装所有所需的额外的数据库记录,比如后台权限和内容类型:

$ python manage.py migrate

测试和调整

上面就是所有基本的步骤了 —— 到目前为止你会想要调整Django自动生成的模型,直到他们按照你想要的方式工作。尝试通过Django数据库API访问你的数据,并且尝试使用Django后台页面编辑对象,以及相应地编辑模型文件。

django 1.8 官方文档翻译: 2-6-2 遗留的数据库相关推荐

  1. django 1.8 官方文档翻译: 2-5-7 自定义查找

    自定义查找 New in Django 1.7. Django为过滤提供了大量的内建的查找(例如,exact和icontains).这篇文档阐述了如何编写自定义查找,以及如何修改现存查找的功能.关于查 ...

  2. django 1.8 官方文档翻译: 2-5-6 多数据库

    多数据库 这篇主题描述Django 对多个数据库的支持.大部分Django 文档假设你只和一个数据库打交道.如果你想与多个数据库打交道,你将需要一些额外的步骤. 定义你的数据库 在Django中使用多 ...

  3. django 1.8 官方文档翻译:2-1-1 模型语法

    模型 模型是你的数据的唯一的.权威的信息源.它包含你所储存数据的必要字段和行为.通常,每个模型对应数据库中唯一的一张表. 基础: 每个模型都是django.db.models.Model 的一个Pyt ...

  4. django 1.8 官方文档翻译:6-3 Django异常

    Django异常 DJango会抛出一些它自己的异常,以及Python的标准异常. Django核心异常 Django核心异常类定义在django.core.exceptions中. ObjectDo ...

  5. django 1.8 官方文档翻译: 2-6-3 提供初始数据

    Django 文档协作翻译小组人手紧缺,有兴趣的朋友可以加入我们,完全公益性质. 交流群:467338606 网站:http://python.usyiyi.cn/django/index.html ...

  6. django 1.8 官方文档翻译: 2-1-1 模型语法(初稿)

    Django 文档协作翻译小组人手紧缺,有兴趣的朋友可以加入我们,完全公益性质. 交流群:467338606 网站:http://python.usyiyi.cn/django/index.html ...

  7. django 1.8 官方文档翻译: 1-2-1 编写你的第一个Django应用,第1部分

    编写你的第一个 Django 程序 第1部分 让我们通过例子来学习. 在本教程中,我们将引导您创建一个基本的投票应用. 它将包含两部分: 一个公共网站,可让人们查看投票的结果和让他们进行投票. 一个管 ...

  8. django 1.8 官方文档翻译: 1-1-2 快速安装指南

    快速安装指南 在你开始使用 Django 之前,你需要先安装它.我们有一个 完整安装指南 它涵盖了所有的安装步骤和可能遇到的问题:本指南将会给你一个最简单.简洁的安装指引. 安装 Python 作为一 ...

  9. django 1.8 官方文档翻译: 3-4-2 基于类的内建通用视图

    基于类的内建通用视图 编写Web应用可能是单调的,因为你需要不断的重复某一种模式. Django尝试从model和 template层移除一些单调的情况,但是Web开发者依然会在view(视图)层经历 ...

最新文章

  1. MATLAB R2018a 输入中文却显示方框问号的问题
  2. react全家桶从0到1(react-router4、redux、redux-saga)
  3. JavaScript [ 转 ] —— 面向对象编程(三):非构造函数的继承
  4. val, lazy, def
  5. mysql一张表1亿天数据_1亿条数据在PHP中实现Mysql数据库分表100张
  6. HDU 1213 How Many Tables【并查集】
  7. java httpcomponents_java – 如何使用Apache httpcomponents从NHttpRequ...
  8. linux的xampp单独启动mysql,linux的xampp重要的文件和目录
  9. 掌握Java编码规范
  10. [专栏精选]UI的自动布局
  11. [linux] mtu查看设置
  12. DevOps使用教程 华为云(16)git 日志记录 比较2次提交差异
  13. IDEA download sources 报Cannot reconnect错误解决方法
  14. 大数据小项目之电视收视率企业项目05
  15. 录屏储存失败因为5823_屏幕录制存储失败因为5823
  16. 函数式编程与Lambda表达式
  17. 斯帅:没料到詹姆斯会耗光时间再投
  18. 基于Python的线性回归预测模型介绍及实践
  19. VS2008(2010)开发C++
  20. 智慧全媒体 5G新视听,共探新时代广播电视!

热门文章

  1. 微信找不到nfc功能_苹果ios 14一周深度体验,这3个功能尤其好用,你还没发现吗?...
  2. 【声学基础】概述——振动学
  3. 内核中的UDP socket流程(1)
  4. 内存的工作原里(二)
  5. 高,低电平复位电路原理及加电容的作用
  6. 带你一文搞懂网络层的IP协议\数据链路层的以太网\ARP协议以及DNS和NAT协议
  7. android camera 动画,Android 使用Camera创建3D动画
  8. C# 输入一个整数,求质因数
  9. 利用 Chrome 原生功能截图网页全图
  10. Socket简单介绍(通过NSStream)