Django項目創建的準備工作【 2 】

【 一?】調整后端目錄

#1 目錄結構
"""
├── luffy_api├── logs/               # 項目運行時/開發時日志目錄 - 包├── manage.py           # 腳本文件├── luffy_api/ ? ?          # 項目主應用,開發時的代碼保存 - 包├── apps/ ? ?       # 開發者的代碼保存目錄,以模塊[子應用]為目錄保存 - 包├── libs/ ? ?       # 第三方類庫的保存目錄[第三方組件、模塊] - 包├── settings/       # 配置目錄 - 包├── dev.py ?    # 項目開發時的本地配置└── prod.py     # 項目上線時的運行配置├── asgi.py ?       # 項目上線├── wsgi.py ?       # 項目上線用├── urls.py ?       # 總路由└── utils/ ? ?      # 多個模塊[子應用]的公共函數類庫[自己開發的組件]└── scripts/ ? ? ?      # 保存項目運營時,測試的腳本文件 - 文件夾
"""

【 1 】創建app應用軟件

【 2 】創建app

  • 來到目錄下:

  • # cd lufy/apps
  • 創建user應用程序

  • # python ../../manage.py startapp user ? 
    • image-20240509163509880

image-20240509163311492

# 2 創建app
?
# 來到目錄下:
cd lufy/apps
?
# 執行
python ../../manage.py startapp user
?
# 3 項目中注冊app-直接寫app名字,運行報錯:No module named 'user'-從環境變量找--》找不到-原來為什么能找到? 原來在項目根路徑下,項目根路徑在環境變量中# 4 把apps目錄加入到環境變量
# 把apps目錄加入到環境變量,以后注冊app,只需要寫名字即可
import sys,os
BASE_DIR = Path(__file__).resolve().parent.parent
apps=os.path.join(BASE_DIR,'lufy','apps')
sys.path.insert(0,apps)
?
## 5 lufy--settings--》dev.py【開發階段配置】 pro.py【上線階段配置】-配置文件路徑發生變化-項目要正常運行--》修改manage.py os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'lufy.settings.dev')-命令可以運行-但是有可能點 綠色箭頭運行不了--》刪除--》重新新建即可-如果還不行--》settings--->django-->配置文件路徑## 本地運行可以了,但是上線還有問題--》配置文件路徑改了# asig.py  wsgi.py 中的配置文件先改好# 如果不改,開發階段,沒有任何問題os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'lufy.settings.pro')# 6 最終配置文件修改成
?
# 把apps目錄加入到環境變量,以后注冊app,只需要寫名字即可
import sys,os
# BASE_DIR 是 lufy
BASE_DIR = Path(__file__).resolve().parent.parent
apps=os.path.join(BASE_DIR, 'apps')
sys.path.insert(0,apps) # 把apps目錄加入到環境變量
sys.path.insert(0,BASE_DIR)# 把BASE_DIR--》小lufy目錄加入到環境變量
# 以后我們導入項目中的模塊和包,只需要從 apps開始導起或 小lufy目錄開始導起 或 大 lufy
# 優先相對導入-->使用絕對導入,盡量從最短路徑開始導起# 7 國際化 ? 
LANGUAGE_CODE = 'zh-hans'
TIME_ZONE = 'Asia/Shanghai'
USE_I18N = True
USE_TZ = False ? ?
# 8 創建了user和home--》app### 注意###
djanog項目運行,首先加載配置文件---》配置文件路徑一定要對,否則項目啟動不起來

【 3 】項目中注冊app

  • 直接寫app名字,運行報錯:No module named 'user'

    • image-20240509163206804

  • 從環境變量找--》找不到

  • 原來為什么能找到? 原來在項目根路徑下,項目根路徑在環境變量中

【 四 】把apps目錄加入到環境變量

第一種方法

添加完整的目錄(這個目錄太low!!)

  • settings.py文件

INSTALLED_APPS = ['django.contrib.admin','django.contrib.auth','django.contrib.contenttypes','django.contrib.sessions','django.contrib.messages','django.contrib.staticfiles','lufy.apps.user' #  直接創建應用軟件就會報錯# 添加完整的目錄
]
  • apps.py

from django.apps import AppConfig
?
?
class UserConfig(AppConfig):default_auto_field = 'django.db.models.BigAutoField'name = 'lufy.apps.user' # 這個也將目錄地址添加完整!

第二種方法

  • 把apps目錄加入到環境變量,以后注冊app,只需要寫名字即可
  • settings.py文件
import sys, os
?
BASE_DIR = Path(__file__).resolve().parent.parent
# "項目名","軟件名"
apps = os.path.join(BASE_DIR, 'lufy', 'apps')
sys.path.insert(0, apps)
?
...
?
?
INSTALLED_APPS = ['django.contrib.admin','django.contrib.auth','django.contrib.contenttypes','django.contrib.sessions','django.contrib.messages','django.contrib.staticfiles','user' ? # 直接使用app文件名就好了!!!
]
?
  • apps.py 這個文件就不需要更改了
from django.apps import AppConfig
?
?
class UserConfig(AppConfig):default_auto_field = 'django.db.models.BigAutoField'name = 'user'

【 五 】配置多套的配置文件

##  lufy--settings--》dev.py【開發階段配置】 pro.py【上線階段配置】-配置文件路徑發生變化-項目要正常運行--》修改manage.py os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'lufy.settings.dev')-命令可以運行-但是有可能點 綠色箭頭運行不了--》刪除--》重新新建即可-如果還不行--》settings--->django-->配置文件路徑## 本地運行可以了,但是上線還有問題--》配置文件路徑改了# asig.py  wsgi.py 中的配置文件先改好# 如果不改,開發階段,沒有任何問題os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'lufy.settings.pro')

    -開發階段:配置不一樣-上線階段:配置不一樣
  • 先將原本的settings.py文件剪切 ---->>> 再lufy文件下創建settings文件 ---->>> 將settings.py復制 ---->>> 改名dev.py

  • image-20240509170209646

image-20240509165844882

image-20240509171823026

  • 這樣就是顯示找不到運行報錯:No module named 'user'

  • image-20240509172749192

  • manage.py文件

  •  ? ?# 加上devos.environ.setdefault('DJANGO_SETTINGS_MODULE', 'lufy.settings.dev')
?
import os
import sys
?
?
def main():"""Run administrative tasks."""# 加上devos.environ.setdefault('DJANGO_SETTINGS_MODULE', 'lufy.settings.dev')try:from django.core.management import execute_from_command_lineexcept ImportError as exc:raise ImportError("Couldn't import Django. Are you sure it's installed and ""available on your PYTHONPATH environment variable? Did you ""forget to activate a virtual environment?") from excexecute_from_command_line(sys.argv)
  • 刪除Django運行配置

image-20240509184256732

  • 重新添加文件配置查看settings.py/lufy.setting.dev是否添加成功!!

  • 還是不行重啟項目

  • ctrl + alt + s 搜索 Django

image-20240509184648060

  • asig.py wsgi.py 中的配置文件先改好
  • 如果不改,開發階段,沒有任何問題
  • # asig.py
    import os
    ?
    from django.core.asgi import get_asgi_application
    os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'lufy.settings.pro')
    ?
    ...
    # wsgi.py 
    import os
    ?
    from django.core.wsgi import get_wsgi_application
    ?
    os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'lufy.settings.pro')
    ?
    application = get_wsgi_application()
    ?

image-20240509185523499

【 六 】最終的配置文件

  • 以后我們導入項目中的模塊和包,只需要從 apps開始導起或 小lufy目錄開始導起 或 大 lufy

  • 優先相對導入-->使用絕對導入,盡量從最短路徑開始導起

# 把apps目錄加入到環境變量,以后注冊app,只需要寫名字即可
from pathlib import Path
import os,sys
?
BASE_DIR = Path(__file__).resolve().parent.parent
# "項目名","軟件名"
apps = os.path.join(BASE_DIR,'apps')
# 把apps目錄加入到環境變量
sys.path.insert(0, apps)
# 把BASE_DIR--》小lufy目錄加入到環境變量
sys.path.insert(0,BASE_DIR)
?

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

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

相關文章

【Git基本操作】添加文件 | 修改文件 | 及其各場景下.git目錄樹的變化

目錄 1. 添加文件&add操作和commit操作 2. .git樹狀目錄的變化 3. git其他操作 4. 修改文件 4.1 git status 4.2 git diff 1. 添加文件&add操作和commit操作 add操作:將工作區中所有文件的修改內容 添加進版本庫的暫存區中。commit操作:…

云端編碼:將您的技術API文檔安全存儲在iCloud的最佳實踐

云端編碼:將您的技術API文檔安全存儲在iCloud的最佳實踐 作為一名技術專業人士,管理不斷增長的API文檔庫是一項挑戰。iCloud提供了一個無縫的解決方案,允許您在所有設備上存儲、同步和訪問您的個人技術API文檔。本文將指導您如何在iCloud中高…

系統服務綜合實驗(dns服務,nfs服務)

題目:現有主機 node01 和 node02,完成如下需求: 1、在 node01 主機上提供 DNS 和 WEB 服務 2、dns 服務提供本實驗所有主機名解析 3、web服務提供 www.rhce.com 虛擬主機 4…

three-tile: 1. 第一個three-tile程序

上篇介紹了:three-tile: 一個開源的輕量級三維瓦片庫-CSDN博客 three-tile 是一個開源的輕量級三維瓦片庫,它基于threejs使用typescript開發,提供一個三維地形模型,能輕松給你的應用增加三維瓦片地圖。 項目地址&…

C#知識|賬號管理系統:UI層-添加賬號窗體設計思路及流程。

哈嘍,你好啊,我是雷工! 前邊練習過詳情頁窗體的設計思路及流程: 《C#知識|上位機UI設計-詳情窗體設計思路及流程(實例)》 本節練習添加賬號窗體的UI設計,以下為學習筆記。 01 效果展示 02 添加窗體 在UI層添加Windows窗體,設置名稱為:FrmAddAcount.cs 設置窗體屬…

Nginx七層(應用層)反向代理:UWSGI代理uwsgi_pass篇

Nginx七層(應用層)反向代理 UWSGI代理uwsgi_pass篇 - 文章信息 - Author: 李俊才 (jcLee95) Visit me at CSDN: https://jclee95.blog.csdn.netMy WebSite:http://thispage.tech/Email: 291148484163.com. Shenzhen ChinaAddress of this a…

數據結構模板2

Trie樹&#xff1a;用來高效存儲和查找字符串集合的數據結構&#xff1a; 模板題&#xff1a;https://www.acwing.com/problem/content/837/ AC代碼&#xff1a; #include<bits/stdc.h> using namespace std; int son[100010][26],cnt[100010],idx; char str[100010]; …

數據的洞察力:SQL Server Analysis Services在數據分析中的卓越應用

數據的洞察力&#xff1a;SQL Server Analysis Services在數據分析中的卓越應用 在商業智能和數據分析領域&#xff0c;SQL Server Analysis Services (SSAS) 是一款強大的工具&#xff0c;它提供了多維數據和數據挖掘模型的創建、部署和管理功能。本文將深入探討如何在SQL Se…

云端生活,智能管理:在iCloud中打造您的個人購物清單與預算計劃

云端生活&#xff0c;智能管理&#xff1a;在iCloud中打造您的個人購物清單與預算計劃 在快節奏的現代生活中&#xff0c;個人財務管理和購物規劃變得尤為重要。iCloud提供了一個強大的平臺&#xff0c;讓我們能夠存儲、同步和共享個人購物清單與預算計劃。本文將詳細介紹如何…

代碼隨想錄算法訓練營第二十九天

452. 用最少數量的箭引爆氣球 這道題目我原本的想法是只要當前的氣球半徑范圍在已有的箭頭能夠擊穿的氣球半徑內就可以實現 但是 箭射出去的地方是一個值 而不是一個范圍 因此有相同的重疊范圍的許多氣球并一定都有相同的值&#xff0c;因此這種方法不可取 這題的主要局部最…

最短路徑算法(算法篇)

算法之最短路徑算法 最短路徑算法 概念&#xff1a; 考查最短路徑問題&#xff0c;可能會輸入一個賦權圖(也就是邊帶有權的圖)&#xff0c;則一條路徑的v1v2…vN的值就是對路徑的邊的權求和&#xff0c;這叫做賦權路徑長&#xff0c;如果是無權路徑長就是單純的路徑上的邊數。…

mac安裝配置cmake

本機是2015 macbook pro mid&#xff0c;已經有點老了&#xff0c;用homebrew下cmake老出問題 其實cmake官網安裝也不麻煩 一、官網下載對應安裝包 Download CMake 和所有dmg文件一樣安裝 二、改成命令行使用 一般來說 tutorial 給的都是命令行build 命令行的設置如下&am…

手機下載APP (uniapp/vue)

一、uniapp <template><view class"content"><view class"appName">{{ formData.appName }}</view><view class"appInfo">{{ formData.appInfo }}</view><image class"logo" :src"formDa…

批量修改Git歷史commit信息中的username

之前很長一段時間GitHub上的提交都在使用工作賬戶, 導致私人倉庫中的提交者比較混亂. 在StackOver里面找到了一個bash腳本可以批量修改username, 在這里記錄一下. 修改的步驟一共兩步: 執行修改腳本將本地修改同步到Git服務器 首先我們來看腳本: #!/bin/shgit filter-branch…

SFUZZ模糊測試平臺全新升級,從標準到實踐助力車企安全出海

開源網安模糊測試平臺SFuzz全新升級&#xff0c;參照各國相關標準要求進行針對性建設&#xff0c;可為智能網聯汽車信息安全測試提供更為強大的工具支持。SFuzz向被測系統輸入大量隨機數據&#xff0c;模擬各種異常情況&#xff0c;可以發現被測系統內潛在的缺陷和漏洞&#xf…

Spring中如何操作Redis

Spring畢竟是Java中的一個主流框架&#xff0c;如何在這個框架中使用Redis呢&#xff1f; 創建項目并引入相關依賴 然后進行創建。 至此就將Redis的相關依賴引入進來了。 編寫Redis配置 將application.properties修改成application.yml 然后編寫如下配置&#xff1a; spr…

usbserver工程師手記(二)設置定時任務

概述 部分銀行ukey 長時間不使用后會導致休眠&#xff0c;出現雖然有連接&#xff0c;但是讀不到證書&#xff0c;可以用定時重置端口的辦法&#xff0c;調用接口 http://ip/usb_server/reset_port,參數為 {"port":"B5-1-2","vid_pid":"09…

Golang | Leetcode Golang題解之第228題匯總區間

題目&#xff1a; 題解&#xff1a; func summaryRanges(nums []int) (ans []string) {for i, n : 0, len(nums); i < n; {left : ifor i; i < n && nums[i-1]1 nums[i]; i {}s : strconv.Itoa(nums[left])if left < i-1 {s "->" strconv.It…

多個標簽頁中復用同一 QTableView

在 PyQt 中實現在多個標簽頁中復用同一個 QTableView 實例&#xff0c;復用同一個 QTableView 實例可以減少內存和資源的使用。每個 QTableView 實例都會消耗一定的內存和處理資源&#xff0c;如果每個標簽頁都創建一個新的實例&#xff0c;會增加系統的負擔。通過復用實例&…

每天一個數據分析題(四百二十一)- 一元線性回歸模型

關于一元線性回歸的求解過程說法正確的是&#xff1f; A.一元線性回歸只需要求解出兩個參數系數即可 B.對于新來的樣例&#xff0c;建立好的一元線性回歸模型可以做出準確的預測 C.一元線性回歸模型的基本形式是YAxe&#xff0c;其中A為系數&#xff0c;e為隨機誤差 D.一元線性…