Django中的Model模型

Model模型

模型是你的數據的唯一的、權威的信息源。它包含你所儲存數據的必要字段和行為。

通常,每個模型對應數據庫中唯一的一張表。

  • 每個模型都是django.db.models.Model的一個Python 子類。
  • 模型的每個屬性都表示為數據庫中的一個字段。
  • Django 提供一套自動生成的用于數據庫訪問的API;
  • 這極大的減輕了開發人員的工作量,不需要面對因數據庫變更而導致的無效勞

模型與數據庫的關系

模型(Model)負責業務對象和數據庫的關系映射(ORM)

ORM是“對象-關系-映射”的簡稱,主要任務是:

  1. 根據對象的類型生成表結構
  2. 將對象、列表的操作,轉換為sql語句
  3. 將sql查詢到的結果轉換為對象、列表

為什么要用模型?

Model是MVC框架中重要的一部分,主要負責程序中用于處理數據邏輯的部分。通常模型對象負責在數據庫中存取數據

它實現了數據模型與數據庫的解耦,即數據模型的設計不需要依賴于特定的數據庫,通過簡單的配置就可以輕松更換數據庫

配置Mysql數據庫

    • 在當前環境中安裝mysql

    • sudo apt-get install mysql-serversudo apt install mysql-clientsudo apt install libmysqlclient-dev
      
    • 在當前python環境中安裝 pymysql

      pip3 install pymysql
      
    • 在mysql中創建數據庫

      create databases mydb default charset=utf8
      
    • 在Django項目中配置數據庫
      修改settings.py文件中的DATABASE配置項

      DATABASES = {'default': {'ENGINE': 'django.db.backends.mysql','NAME': 'mydb',#選擇數據庫的名,請確認你的mysql中有這個庫'USER': 'root','PASSWORD': '123456','HOST': 'localhost','PORT': '3306',}
      }
      
    • 告訴Django在接下來的mysql操作中使用pymysql

      打開mysite/__init__.py,寫入以下代碼導入pymysql:

      import pymysql
      pymysql.install_as_MySQLdb()
      
    • 開發流程

      1. 1. 在models.py中定義模型類,要求繼承自models.Model

      from django.db import models# Create your models here.#用戶信息模型
      class Users(models.Model):username = models.CharField(max_length=32)password = models.CharField(max_length=32)email = models.CharField(max_length=50)# class Meta:#    db_table = "polls_users"  # 指定表名
      

      2. 把應用加入settings.py文件的installed_app項
      編輯mysite/settings.py文件,并將項目應用文件名添加到該INSTALLED_APPS設置。

      INSTALLED_APPS = ['django.contrib.admin','django.contrib.auth','django.contrib.contenttypes','django.contrib.sessions','django.contrib.messages','django.contrib.staticfiles','myweb',
      ]
      

      3.生成遷移文件

      python3 manage.py makemigrations
      

      4.執行遷移

      python3 manage.py migrate
      

      5.使用模型類進行crud操作

    本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
    如若轉載,請注明出處:http://www.pswp.cn/news/455593.shtml
    繁體地址,請注明出處:http://hk.pswp.cn/news/455593.shtml
    英文地址,請注明出處:http://en.pswp.cn/news/455593.shtml

    如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

    相關文章

    python有多少種模塊_python如何查看有哪些模塊

    Question: 如何查看正則表達式模塊re及其相關函數的意義 1、終端命令行下 python >> import sys >> sys.modules ################################### 一長串信息中字段modules對應的模塊即為包含的模塊。 ################################### >> import r…

    淺談面向對象的javascript幾個特性

    javascript中的this和new javascript是一門很靈活的語言,尤其是function。他即可以以面向過程的方式來用,比如: function getName() {return 張三 } getName() 也可以以面向對象的方式來用,比如: function User() {th…

    【Netty】ChannelHandler和ChannelPipeline

    一、前言 前面學習了Netty的ByteBuf,接著學習ChannelHandler和ChannelPipeline。 二、ChannelHandler和ChannelPipeline 2.1 ChannelHandler 在ChannelPipeline中,ChannelHandler可以被鏈在一起處理用戶邏輯。 1. Channel生命周期 Channel接口定義了一個…

    TS流頭部的調整字段

    見 http://hi.baidu.com/xumingxsh/blog/item/7b178903f1fa98014afb512f.html http://hi.baidu.com/xumingxsh/blog/item/ba50dba320a10da3caefd02f.html

    electron 入坑記

    最近有個想法,想寫個簡單的應用程序.平時在 Mac上開發,最終有可能運行在 Windows 上.看了一下,Electron 比較簡單,應該可以一試. 關于安裝 我機器上是有 Node 環境的,按著官方教程 直接 npm install electron 結果運行到 npm install.js就不到了..下午上班有事,也沒管他,結果一…

    自動駕駛安全駕駛規則_自動駕駛知識科普 自動駕駛汽車的七大核心技術

    自動駕駛技術的本質是用機器視角去模擬人類駕駛員的行為,其技術框架可以分為三個環節:感知層、決策層 和執行層,具體涉及傳感器、計算平臺、算法、高精度地圖、OS、HMI等 多個技術模塊。目前自動駕駛L3商業化技術已經成熟,L4級/L5…

    orcal數據操作

    1.將數據庫ZHSY完全導出,用戶名baseusernj密碼baseusernj導出到D:\daochu.dmp中 exp baseusernj/baseusernjZHSY filed:\daochu.dmp fully exp baseuserhf/baseuserhfZJCPDB fileC:\105hf.dmp ownerbaseuserhf 2.導入那個數據庫的用戶就寫那個,第一個是用戶名&#…

    H264實時編碼及NALU,RTP傳輸(ZZ)

    rfc3984 Standards Track [Page 2] RFC 3984 RTP Payload Format for H.264 Video February 2005 1. 按照RFC3984協議實現H264視頻流媒體nalu單元 包起始 0x 00 00 00 01H.264 NAL格式及分析器http://hi.baidu.com/zsw%5Fdavy/b ... c409cc7cd92ace.htmlhttp://hi.b…

    學習具體計劃書

    計劃書10大行動&#xff1a;1. 學習的時候不玩手機學習的時候把手機放在抽屜里&#xff0c;靜音2. 及時復習學完一個章節的知識及時復習覺得有做分享的價值就做分享錄視頻3. 不學習的時間要好好利用花時間做好吃的&#xff0c;把身體弄好多看看心理學的書&#xff0c;<接觸青…

    初識python

    課程介紹: python語言:python語言是一種計算機程序設計語言,實現人機交互的語言 python的課程設計python基礎 (python開發工程師)數據庫和SQL開發 (數據分析工程師)網絡爬蟲 (網絡爬蟲工程師)高數和數據分析 (數據分析工程師)人工智能和機器學習 …

    photoshop最全快捷鍵列表

    一、工具箱(多種工具共用一個快捷鍵的可同時按【Shift】加此快捷鍵選取) 矩形、橢圓選框工具 【M】 移動工具 【V】 套索、多邊形套索、磁性套索 【L】 魔棒工具 【W】 裁剪工具 【C】 切片工具、切片選擇工具 【K】 噴槍工具 【J】 畫筆工具、鉛筆工具 【B】 像皮圖章、圖案圖…

    python實例化對象做實參_如何在Python中記住類實例化?

    好的&#xff0c;這是真實的場景&#xff1a;我正在編寫一個應用程序&#xff0c;我有一個類&#xff0c;它表示某種類型的文件&#xff08;在我的例子中&#xff0c;這是照片&#xff0c;但細節與問題無關&#xff09;。照片類的每個實例對于照片的文件名都應該是唯一的。 問題…

    bupt summer training for 16 #3 ——構造

    https://vjudge.net/contest/172464 后來補題發現這場做的可真他媽傻逼 A.簽到傻逼題&#xff0c;自己分情況 1 #include <cstdio>2 #include <vector>3 #include <algorithm>4 5 using std::vector;6 using std::sort;7 8 typedef long long ll;9 10 int n…

    Python02期(北京)課程筆記索引

    day01 初始python關于使用notepad運行python程序注釋和語句分類 day02 命名方式和關鍵字數據類型數據類型轉換 day03 變量與數據類型運算和運算符進制轉換 day04 循環結構 day05 函數概述 day06 nonlocal和global 關鍵字詳解 day07 python核心,內建函數高階函數字…

    python常用快捷鍵、寫代碼事半功倍_Pycharm常用快捷鍵總結及配置方法

    工欲善其事必先利其器&#xff0c;Python開發利器Pycharm常用快捷鍵以及配置如下&#xff0c;相信有了這些快捷鍵&#xff0c;你的開發會事半功倍 一 常用快捷鍵 編輯類&#xff1a; Ctrl D 復制選定的區域或行 Ctrl Y 刪除選定的行 Ctrl Alt L 代碼格式化 Ctrl Alt O 優…

    PHP中的魔術常量

    魔術常量 PHP 向它運行的任何腳本提供了大量的預定義常量。不過很多常量都是由不同的擴展庫定義的&#xff0c;只有在加載了這些擴展庫時才會出現&#xff0c;或者動態加載后&#xff0c;或者在編譯時已經包括進去了。 有八個魔術常量它們的值隨著它們在代碼中的位置改變而改…

    Java中的繼承性特性

    繼承性是java中的第二特性之一。而繼承性最為關鍵的地方為&#xff1a;代碼重用性的問題&#xff0c;利用繼承性可以從已有的類中繼續派生出新的子類&#xff0c;也可以利用子類擴展出更多的操作功能。 繼承性的實現代碼為&#xff1a;class 子類 extends 父類{ } 有以下3點說…

    10大html5前端框架

    Bootstrap 首先說 Bootstrap&#xff0c;估計你也猜到會先說或者一定會有這個( 呵呵了 )&#xff0c;這是說明它的強大之處&#xff0c;擁有框架一壁江山的勢氣。自己剛入道的時候本著代碼任何一個字母都得自己敲出來擋我者廢的決心&#xff0c;來讓自己成長。結果受到周圍各 種…

    多媒體技術復習匯總 收藏

    多媒體技術復習匯總 收藏 1. 什么是媒體&#xff1a;媒體是信息表示和傳輸的載體。2. 媒體分類&#xff1a;感覺媒體&#xff0c;表示媒體&#xff0c;表現媒體&#xff0c;存儲媒體&#xff0c;傳輸媒體3. 多媒體技術的定義和特點&#xff1a;多媒體技…