首页 > 数据库 >django 1.8 官方文档翻译: 2-6-2 遗留的数据库

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

时间:2023-04-13 14:38:49浏览次数:37  
标签:inspectdb models 数据库 py 1.8 Django 文档 django 模型


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

交流群:467338606

将遗留数据库整合到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 = False
       db_table = 'CENSUS_PERSONS'

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

安装Django核心表

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

$ python manage.py migrate

测试和调整

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


标签:inspectdb,models,数据库,py,1.8,Django,文档,django,模型
From: https://blog.51cto.com/wizardforcel/6187970

相关文章

  • django 1.8 官方文档翻译: 3-1-2 编写视图
    Django文档协作翻译小组人手紧缺,有兴趣的朋友可以加入我们,完全公益性质。交流群:467338606编写视图一个视图函数,或者简短来说叫做视图,是一个简单的Python函数,它接受web请求,并且返回web响应。响应可以是一张网页的HTML内容,一个重定向,一个404错误,一个XML文档,或者一张图片…是任何东......
  • django 1.8 官方文档翻译: 2-6-3 提供初始数据
    Django文档协作翻译小组人手紧缺,有兴趣的朋友可以加入我们,完全公益性质。交流群:467338606为模型提供初始数据当你首次建立一个应用的时候,为你的数据库预先安装一些硬编码的数据,是很有用处的。有几种方法可以让Django自动创建这些数据:你可以通过fixtures提供初始数据,或者提供一个......
  • django 1.8 官方文档翻译: 2-6-4 数据库访问优化
    Django文档协作翻译小组人手紧缺,有兴趣的朋友可以加入我们,完全公益性质。交流群:467338606数据库访问优化Django的数据库层提供了很多方法来帮助开发者充分的利用他们的数据库。这篇文档收集了相关文档的一些链接,添加了大量提示,并且按照优化数据库使用的步骤的概要来组织。性能优先......
  • django 1.8 官方文档翻译: 3-4-2 内建显示视图
    Django文档协作翻译小组人手紧缺,有兴趣的朋友可以加入我们,完全公益性质。交流群:467338606基于类的内建通用视图编写Web应用可能是单调的,因为你需要不断的重复某一种模式。Django尝试从model和template层移除一些单调的情况,但是Web开发者依然会在view(视图)层经历这种厌烦。Django......
  • django 1.8 官方文档翻译: 4-2-4 人性化
    Django文档协作翻译小组人手紧缺,有兴趣的朋友可以加入我们,完全公益性质。交流群:467338606django.contrib.humanize一系列Django的模板过滤器,有助于向数据添加“人文关怀”。把’django.contrib.humanize’添加到INSTALLED_APPS设置来激活这些过滤器。执行以上步骤之后,在模板中使......
  • django 1.8 官方文档翻译: 3-4-3 使用基于类的视图处理表单
    使用基于类的视图处理表单表单的处理通常有3个步骤:初始的的GET(空白或预填充的表单)带有非法数据的POST(通常重新显示表单和错误信息)带有合法数据的POST(处理数据并重定向)你自己实现这些功能经常导致许多重复的样本代码(参见在视图中使用表单)。为了避免这点,Django提供一系列的通用的......
  • django 1.8 官方文档翻译: 3-4-1 基于类的视图
    基于类的视图视图是一个可调用对象,它接收一个请求然后返回一个响应。这个可调用对象可以不只是函数,Django提供一些可以用作视图的类。它们允许你结构化你的视图并且利用继承和混合重用代码。后面我们将介绍一些用于简单任务的通用视图,但你可能想要设计自己的可重用视图的结构以适......
  • django 1.8 官方文档翻译: 3-2-1 内建的视图
    内建的视图有几个Django的内建视图在编写视图中讲述,文档的其它地方也会有所讲述。开发环境中的文件服务器static.serve(request,path,document_root,show_indexes=False)在本地的开发环境中,除了你的项目中的静态文件,可能还有一些文件,出于方便,你希望让Django来作为服务器。ser......
  • django 1.8 官方文档翻译: 3-1-4 视图装饰器
    视图装饰器Django为视图提供了数个装饰器,用以支持相关的HTTP服务。允许的HTTP方法django.views.decorators.http包里的装饰器可以基于请求的方法来限制对视图的访问。若条件不满足会返回django.http.HttpResponseNotAllowed。require_http_methods(request_method_list)[source]......
  • django 1.8 官方文档翻译: 3-1-3 Django 的快捷函数
    Django的快捷函数django.shortcuts收集了“跨越”多层MVC的辅助函数和类。换句话讲,这些函数/类为了方便,引入了可控的耦合。renderrender(request,template_name[,context][,context_instance][,content_type][,status][,current_app][,dirs][,using])[source]结合一个......