一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

腳本之家,腳本語言編程技術及教程分享平臺!
分類導航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務器之家 - 腳本之家 - Python - Pycharm開發Django項目創建ORM模型的問題

Pycharm開發Django項目創建ORM模型的問題

2022-02-12 15:11白日夢想家UUC Python

ORM,全稱Object Relational Mapping,通過ORM我們可以通過類的方式去操作數據庫,而不用再寫原生的SQL語句,下面通過本文給大家介紹Pycharm開發Django項目ORM模型介紹,感興趣的朋友一起看看吧

隨著項目越來越大,采用寫原生SQL的方式在代碼中會出現大量的SQL語句,那么問題就出現了:

  1. SQL語句重復利用率不高,越復雜的SQL語句條件越多,代碼越長。會出現很多相近的SQL語句。
  2. 很多SQL語句是在業務邏輯中拼出來的,如果有數據庫需要更改,就要去修改這些邏輯,這會很容易漏掉對某些SQL語句的修改。
  3. 寫SQL時容易忽略web安全問題,給未來造成隱患。SQL注入。

ORM,全稱Object Relational Mapping,中文叫做對象關系映射,通過ORM我們可以通過類的方式去操作數據庫,而不用再寫原生的SQL語句。通過把表映射成類,把行作實例,把字段作為屬性,ORM在執行對象操作的時候最終還是會把對應的操作轉換為數據庫原生語句。使用ORM有許多優點:

  1. 易用性:使用ORM做數據庫的開發可以有效的減少重復SQL語句的概率,寫出來的模型也更加直觀、清晰。
  2. 性能損耗小:ORM轉換成底層數據庫操作指令確實會有一些開銷。但從實際的情況來看,這種性能損耗很少(不足5%),只要不是對性能有嚴苛的要求,綜合考慮開發效率、代碼的閱讀性,帶來的好處要遠遠大于性能損耗,而且項目越大作用越明顯。
  3. 設計靈活:可以輕松的寫出復雜的查詢。
  4. 可移植性:Django封裝了底層的數據庫實現,支持多個關系數據庫引擎,包括流行的MySQLPostgreSQLSQLite。可以非常輕松的切換數據庫。

Pycharm開發Django項目創建ORM模型的問題

創建ORM模型:

ORM模型一般都是放在appmodels.py文件中。每個app都可以擁有自己的模型。并且如果這個模型想要映射到數據庫中,那么這個app必須要放在settings.pyINSTALLED_APP中進行安裝。以下是寫一個簡單的書籍ORM模型。示例代碼如下:

?
1
2
3
4
5
6
from django.db import models
class Book(models.Model):
    name = models.CharField(max_length=20,null=False)
    author = models.CharField(max_length=20,null=False)
    pub_time = models.DateTimeField(default=datetime.now)
    price = models.FloatField(default=0)

以上便定義了一個模型。這個模型繼承自django.db.models.Model,如果這個模型想要映射到數據庫中,就必須繼承自這個類。這個模型以后映射到數據庫中,表名是模型名稱的小寫形式,為book。在這個表中,有四個字段,一個為name,這個字段是保存的是書的名稱,是varchar類型,最長不能超過20個字符,并且不能為空。第二個字段是作者名字類型,同樣也是varchar類型,長度不能超過20個。第三個是出版時間,數據類型是datetime類型,默認是保存這本書籍的時間。第五個是這本書的價格,是浮點類型。
還有一個字段我們沒有寫,就是主鍵id,在django中,如果一個模型沒有定義主鍵,那么將會自動生成一個自動增長的int類型的主鍵,并且這個主鍵的名字就叫做id

映射模型到數據庫中:

ORM模型映射到數據庫中,總結起來就是以下幾步:

  1. settings.py中,配置好DATABASES,做好數據庫相關的配置。
  2. app中的models.py中定義好模型,這個模型必須繼承自django.db.models
  3. 將這個app添加到settings.pyINSTALLED_APP中。
  4. 在命令行終端,進入到項目所在的路徑,然后執行命令python manage.py makemigrations來生成遷移腳本文件。
  5. 同樣在命令行中,執行命令python manage.py migrate來將遷移腳本文件映射到數據庫中。

到此這篇關于Pycharm開發Django項目ORM模型介紹的文章就介紹到這了,更多相關Pycharm開發Django項目內容請搜索服務器之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持服務器之家!

原文鏈接:https://www.cnblogs.com/uuc789/p/15427772.html

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 91九色麻豆| 女同videos双性人 | 亚洲国产成人久久综合区 | 精品欧美小视频在线观看 | 99久久一香蕉国产线看观看 | 日韩欧美一区二区在线观看 | 欧美日韩高清一区 | 国产精品一区二区不卡的视频 | 免费在线观看伦理片 | 天色综合 | 好涨好大我快受不了了视频网 | 日本不卡免费新一二三区 | 14一18cad中国大学生 | 成年人在线视频免费观看 | 精品国产在天天线在线麻豆 | 亚洲精品乱码久久久久久蜜桃图片 | 精品亚洲欧美中文字幕在线看 | 亚欧有色在线观看免费版高清 | 久久久GOGO无码啪啪艺术 | 成人国产精品一级毛片视频 | 男女男精品视频免费观看 | 亚洲欧美在线观看一区二区 | 日本伊人色综合网 | 欧美图片另类小说综合 | 天堂精品高清1区2区3区 | 好大好硬好紧太深了受不了 | 男男playh片在线观看 | 福利视频一区二区三区 | 给我免费的视频在线观看 | 睡男神的这件小事小说在线阅读 | 久久足恋网 | 亚洲免费高清视频 | 深夜成人 | 午夜想想爱 | 天天碰夜夜操 | 亚洲国产天堂久久综合网站 | 交换年轻夫妇HD中文字幕 | 亚洲丰满模特裸做爰 | 亚洲狠狠综合久久 | 久久久黄色片 | 国产五月天在线 |