欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

django連接oracle時setting 配置方法

 更新時間:2019年08月29日 10:02:49   作者:飛鷹1122  
今天小編就為大家分享一篇django連接oracle時setting 配置方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

下一步是將新創(chuàng)建的應(yīng)用程序與項目相關(guān)聯(lián)。為此,您需要編輯 myproj 文件夾中的 settings.py 文件,將字符串“myproj.myapp”追加到 INSTALLED_APPS 字節(jié)組中,如下所示:

INSTALLED_APPS = ( 
‘django.contrib.auth', 
‘django.contrib.contenttypes', 
‘django.contrib.sessions', 
‘django.contrib.sites', 
‘myproj.myapp' 
) 

您已完成了應(yīng)用程序主干的構(gòu)建。然而,在可以查看應(yīng)用程序是否正常工作之前,需要執(zhí)行一些額外步驟。當(dāng)然,這些步驟可能會有所不同,具體取決于您希望應(yīng)用程序執(zhí)行的操作。例如,如果您要構(gòu)建不與數(shù)據(jù)庫交互的簡單應(yīng)用程序,則不需要將數(shù)據(jù)庫信息放在 settings.py 配置文件以及設(shè)計數(shù)據(jù)模型中。但在大多數(shù)情況下,您至少需要執(zhí)行以下五個步驟:

在 settings.py 中指定數(shù)據(jù)庫信息

創(chuàng)建模型

創(chuàng)建模板

創(chuàng)建視圖

在 urls.py 中配置 URL 模式

在繼續(xù)上述步驟之前,讓我們看一下 Django 應(yīng)用程序的高級視圖,以便您可以更好地了解 Django 中的組件如何工作。下圖示意性地顯示了 Django 應(yīng)用程序如何工作以滿足用戶請求。

根據(jù)此圖中的圖示,工作方式如下:

用戶輸入支持 Django 的站點的 URL 或在此站點的已加載頁面上執(zhí)行操作,從而將請求發(fā)送到托管此站點的 Web 服務(wù)器。

Django 的 URL 調(diào)度程序遍歷 urls.py 文件中的 URL 模式,并選擇第一個與用戶請求的 URL 匹配的模式,然后調(diào)用與所發(fā)現(xiàn)模式相關(guān)聯(lián)的視圖(Python 回調(diào)函數(shù))。

視圖使用數(shù)據(jù)模型獲得數(shù)據(jù)庫數(shù)據(jù),然后加載指定模板(已嵌入特殊模板標記的 HTML 頁面;它類似于 Java 中的 JavaServer Page),并向其傳遞上下文(包括映射到模板變量名稱的已獲得數(shù)據(jù))。

最后,視圖返回由已呈現(xiàn)模板填充的 HttpResponse 對象,如果出現(xiàn)錯誤,則返回 HTTP 異常。

您可以看到,Django 基于將 Web 應(yīng)用程序邏輯分為模型、視圖和模板的概念,因此有效地將業(yè)務(wù)邏輯和展示分離開來。通常,這類似于當(dāng)今許多其他 Web 框架中使用的模型-視圖-控制器 (MVC) 范例。然而,在 Django 中,視圖更像控制器,介于模型和模板之間。而 Django 模板更接近于 MVC 視圖,因為這些模板負責(zé)使用從模型中獲得的數(shù)據(jù)生成適當(dāng)?shù)挠脩艚缑妗?/p>

現(xiàn)在您已掌握 Django 的概念,讓我們繼續(xù)在本部分開頭啟動的項目,構(gòu)建一個與 Oracle 數(shù)據(jù)庫交互的簡單應(yīng)用程序。

配置 Django 以便與 Oracle 數(shù)據(jù)庫交互

您必須先告訴 Django 如何連接到數(shù)據(jù)庫,才能利用 Django 的數(shù)據(jù)庫相關(guān)特性。您可以通過在項目的 settings.py 配置文件中配置數(shù)據(jù)庫相關(guān)設(shè)置來執(zhí)行此操作。對于在上一部分開頭創(chuàng)建的項目,您需要編輯 django-admin.py 生成的 myproj 目錄中的 settings.py。

在文本編輯器中打開 settings.py 文件,并根據(jù)您的數(shù)據(jù)庫編輯與數(shù)據(jù)庫相關(guān)的設(shè)置。例如,您可能按如下方式編輯它們:

DATABASE_ENGINE = ‘oracle' 
DATABASE_NAME = ‘XE' 
DATABASE_USER = ‘hr' 
DATABASE_PASSWORD = ‘hr' 
DATABASE_HOST = ‘localhost' 
DATABASE_PORT = ‘1521' 

上述方式假設(shè)您在數(shù)據(jù)庫中安裝了 HR 演示模式并解除了鎖定。然而,在實際項目中,您很可能會使用針對特定應(yīng)用程序設(shè)計的自定義模式。需要注意的是,Django 可以省去您自己創(chuàng)建基礎(chǔ)表的麻煩。完成數(shù)據(jù)模型的構(gòu)建之后,您可以運行 manage.py syncdb 命令以自動創(chuàng)建數(shù)據(jù)庫表 — 針對 models.py 文件中的每個數(shù)據(jù)模型創(chuàng)建一個數(shù)據(jù)庫表。但為了簡單起見,本文中的示例將使用 HR 演示模式中已經(jīng)存在的表。

現(xiàn)在您已指示 Django 與特定 Oracle 數(shù)據(jù)庫交互,可以繼續(xù)構(gòu)建數(shù)據(jù)模型。

與模型的對象關(guān)系映射

如前所述,Django 支持與模型的對象關(guān)系映射,其中每個模型映射到單個數(shù)據(jù)庫表,并表示子類為 django.db.models.Model 標準類的 Python 類。

以下示例說明如何針對現(xiàn)有表定義模型。在此示例中,您將使用 HR 的 employees 表,僅針對此表的選定字段定義模型字段。在 myproj/myapp 目錄中打開 models.py 文件并進行編輯,添加 employees 類,如下所示:

from django.db import models

Create your models here.
class employees(models.Model): 
employee_id = models.IntegerField(primary_key=True) 
first_name = models.CharField(max_length=20, null = True) 
last_name = models.CharField(max_length=25) 
email = models.CharField(max_length=25) 
class Meta: 
db_table = “employees” 

請注意,此處使用了一些模型字段選項。通過設(shè)置 primary_key = True,可顯式指定此字段是模型的主鍵。max_length 是 CharField 這一字符串字段所需的參數(shù)。如果將可選的 null 參數(shù)設(shè)置為 True,即表示告訴 Django 將空值作為 NULL 保存到數(shù)據(jù)庫中。默認情況下,此參數(shù)設(shè)置為 False。要查看字段選項和字段類型的完整列表,您可以參閱 Django 文檔中的 Model 字段參考頁面。

在上述示例中,另一個需要注意的事項是類 Meta 的使用,您可以通過此類為模型提供元數(shù)據(jù)選項。在此特定示例中,您使用 db_table 選項顯式指定模型要映射到的表的名稱。實際上,默認情況下,Django 假設(shè)表的名稱由模型類的名稱和應(yīng)用程序名稱組成(通過下劃線 (_) 符號分隔)。因此,在此特定示例中,Django 將查找名為 myapp_employees 的表。當(dāng)然,db_table 并不是您可用于模型內(nèi)部類 Meta 的唯一選項。您可以在 Django 文檔的 Model Meta 選項頁面上查看可用的 Meta 選項列表。

此處討論的示例很簡單,因為它僅顯示到單個數(shù)據(jù)庫表的映射。但實際上,您通常必須處理一組通過外鍵約束相互關(guān)聯(lián)的基礎(chǔ)數(shù)據(jù)庫表。為了解決此問題,Django 提供了 ForeignKey 字段類型,可讓您定義表示多對一關(guān)系的模型字段。

幸運的是,HR 演示模式僅包含一組通過外鍵約束相互關(guān)聯(lián)的表。例如,您可能選擇 departments 表(其 manager_id 字段是 employees 表中 employee_id 的外鍵),并定義以下模型(將其添加到 models.py 文件中):

class departments(models.Model): 
department_id = models.IntegerField(primary_key=True) 
department_name = models.CharField(max_length=30) 
manager = models.ForeignKey(employees, null = True) 
class Meta: 
db_table = “departments” 

看一下上述模型定義,您可能已經(jīng)注意到,它針對外鍵模型字段使用名稱 manager,而不是實際在 departments 表中使用的 manager_id。實際上,在模型中使用的 manager 字段引用相應(yīng)的 employees 對象,而非此對象的 employee_id 字段。當(dāng)外鍵字段名稱要引用基礎(chǔ)表中的相應(yīng)列時,Django 會隱式地將 _id 追加到此名稱中。然而,在某些情況下,表中外鍵字段的名稱結(jié)尾可能不包含 _id。如果是這種情況,您可以使用外鍵模型字段的 db_column 參數(shù)顯式指定表列名稱。雖然在此特定示例中無需如此,但您可以使用以下語法在 departments 表中顯式指定外鍵列的名稱:

manager = models.ForeignKey(employees, db_column = ‘manager_id', null = True) 

除了上述通過 ForeignKey 定義的多對一關(guān)系之外,Django 還支持一對一和多對多關(guān)系,您可以在模型中分別通過 OneToOneField 和 ManyToManyField 字段來定義。

以上這篇django連接oracle時setting 配置方法就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 用Python實現(xiàn)群發(fā)郵件

    用Python實現(xiàn)群發(fā)郵件

    大家好,本篇文章主要講的是用Python實現(xiàn)群發(fā)郵件,感興趣的同學(xué)趕快來看一看吧,對你有幫助的話記得收藏一下
    2022-02-02
  • django ORM之values和annotate使用詳解

    django ORM之values和annotate使用詳解

    這篇文章主要介紹了django ORM之values和annotate使用詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-05-05
  • django queryset 去重 .distinct()說明

    django queryset 去重 .distinct()說明

    這篇文章主要介紹了django queryset 去重 .distinct()說明,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-05-05
  • Python實現(xiàn)發(fā)送郵件到自己郵箱

    Python實現(xiàn)發(fā)送郵件到自己郵箱

    在日常開發(fā)中,我們經(jīng)常需要監(jiān)控應(yīng)用程序的狀態(tài),及時發(fā)現(xiàn)問題并采取措施解決。而通過郵件發(fā)送報警信息則是一種常見的實現(xiàn)方式。本文就來介紹一下Python實現(xiàn)發(fā)送郵件到自己郵箱的方法
    2023-04-04
  • Python?Panda中索引和選擇?series?的數(shù)據(jù)

    Python?Panda中索引和選擇?series?的數(shù)據(jù)

    這篇文章主要介紹了Python?Panda中索引和選擇series的數(shù)據(jù),文章通過圍繞主題展開詳細的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-09-09
  • Python使用裝飾器進行django開發(fā)實例代碼

    Python使用裝飾器進行django開發(fā)實例代碼

    這篇文章主要介紹了Python使用裝飾器進行django開發(fā)實例代碼,分享了相關(guān)代碼示例,小編覺得還是挺不錯的,具有一定借鑒價值,需要的朋友可以參考下
    2018-02-02
  • 一篇文章帶你自學(xué)python Django

    一篇文章帶你自學(xué)python Django

    這篇文章主要為大家詳細介紹了Python利用Django完整的開發(fā)一個博客系統(tǒng),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-09-09
  • Pycharm 2020.1 版配置優(yōu)化的詳細教程

    Pycharm 2020.1 版配置優(yōu)化的詳細教程

    這篇文章主要介紹了更新Pycharm 2020.1 版配置優(yōu)化的詳細教程,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-08-08
  • python中Pytest常用的插件

    python中Pytest常用的插件

    這篇文章主要介紹了python中Pytest常用的插件,Pytest是Python的一種單元測試框架,與unittest相比,使用起來更簡潔、效率更高,也是目前大部分使用python編寫測試用例的小伙伴們的第一選擇了
    2022-06-06
  • python格式化輸出保留2位小數(shù)的實現(xiàn)方法

    python格式化輸出保留2位小數(shù)的實現(xiàn)方法

    這篇文章主要介紹了python格式化輸出保留2位小數(shù)的實現(xiàn)方法,需要的朋友可以參考下
    2019-07-07

最新評論