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.mzph.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.一元线性…