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操作:…

系统服务综合实验(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]; …

代码随想录算法训练营第二十九天

452. 用最少数量的箭引爆气球 这道题目我原本的想法是只要当前的气球半径范围在已有的箭头能够击穿的气球半径内就可以实现 但是 箭射出去的地方是一个值 而不是一个范围 因此有相同的重叠范围的许多气球并一定都有相同的值&#xff0c;因此这种方法不可取 这题的主要局部最…

mac安装配置cmake

本机是2015 macbook pro mid&#xff0c;已经有点老了&#xff0c;用homebrew下cmake老出问题 其实cmake官网安装也不麻烦 一、官网下载对应安装包 Download CMake 和所有dmg文件一样安装 二、改成命令行使用 一般来说 tutorial 给的都是命令行build 命令行的设置如下&am…

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;会增加系统的负担。通过复用实例&…

日常学习-20240710

1、一次一千万条数据插入和删除案例&#xff1a; 第一次&#xff1a;插入--批量插入&#xff0c;每次插入5000条数据&#xff0c;总耗时28min,数据无异常 删除--通过sql语句一次性删除&#xff0c;总耗时1h52min;一次删除的数据过多导致mysql的备份恢复文件极其庞大&#xff0…

CentOS7 安装 git 命令

通过yum源install下载的git版本比较低&#xff0c;不推荐此方式安装。 官网下载最新版git源码&#xff1a;Git 1. 解压安装包 tar -xzvf git-2.45.2.tar.gz 2. 安装相关依赖 yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc perl-ExtUtils…

uniapp使用高德地图(公众号+h5)

选择微信小程序的话后果就是你的地图出不来&#xff0c;出来了就报key异常 下面直接放配置和代码&#xff1a; 打包后的高德uni-app,uniCloud,serverless,高德地图,申请高德地图Key,配置使用高德地图,参数说明,高德开放平台用户名,百度地图,申请百度地图Key,配置使用百度地图,…

线性代数|机器学习-P22逐步最小化一个函数

文章目录 1. 概述2. 泰勒公式3. 雅可比矩阵4. 经典牛顿法4.1 经典牛顿法理论4.2 牛顿迭代法解求方程根4.3 牛顿迭代法解求方程根 Python 5. 梯度下降和经典牛顿法5.1 线搜索方法5.2 经典牛顿法 6. 凸优化问题6.1 约束问题6.1 凸集组合 Mit麻省理工教授视频如下&#xff1a;逐步…

SpringBoot使用RedisTemplate、StringRedisTemplate操作Redis

前言 RedisTemplate 是 Spring Boot 访问 Redis 的核心组件&#xff0c;底层通过 RedisConnectionFactory 对多种 Redis 驱动进行集成&#xff0c;上层通过 XXXOperations 提供丰富的 API &#xff0c;并结合 Spring4 基于泛型的 bean 注入&#xff0c;极大的提供了便利&#x…

深度学习和NLP中的注意力和记忆

深度学习和NLP中的注意力和记忆 文章目录 一、说明二、注意力解决了什么问题&#xff1f;#三、关注的代价#四、机器翻译之外的关注#五、注意力&#xff08;模糊&#xff09;记忆&#xff1f;# 一、说明 深度学习的最新趋势是注意力机制。在一次采访中&#xff0c;现任 OpenAI 研…

K8S中部署 Nacos 集群

1. 准备 GitK8Skubectlhelm 咱也没想到 K8S 部署系列能搞这么多次&#xff0c;我一个开发天天干运维的活&#xff0c;前端后端运维测试工程师实至名归。 2. 方案选择 https://github.com/nacos-group/nacos-k8s 我替你们看了一下&#xff0c;有好几种方式能部署&#xff…