Django_学习_01

Django 项目快速创建及目录说明

1.先创建虚拟环境 (是创建一个相对隔离的环境,后面安装的第三方包都在虚拟环境中--可以理解成一个容器)

先创建一个项目根目录,创建后进入到这个目录创建对应的虚拟目录,例如已经创建了project_django1

a.创建虚拟环境
b.激活虚拟环境
c.安装虚拟环境下的其它的包
python 复制代码
cd project_django1
pip install virturlenv
virtualenv .venv  --python==python3.10   #.venv  用.表示这个是隐藏文件,venv一般可以和项目同名
cd .venv/Script                          #进入active所在目录
activate.bat                             #激活虚拟环境
(.venv)                              

2.安装django

python 复制代码
(.venv) E:\project_django1> pip install django==3.2

3.创建django项目

a.创建项目

python 复制代码
d:\>               #切换到d:盘

# xxx 为项目名称 且创建的项目目标目录和虚拟环境目录可以不在同一目录
d:\>django-admin startproject xxx  


#执行django-admin startproject xxx后D盘生成了xxx 的项目目录

d:\xxx>dir

2023/11/16  22:14    <DIR>          .
2023/11/16  22:14    <DIR>          ..
2023/11/16  22:14               681 manage.py      #项目的管理工具
2023/11/16  22:14    <DIR>          xxx

# 项目xxx

(.venv) d:\xxx>cd xxx

(.venv) d:\xxx\xxx>dir 
 驱动器 D 中的卷是 软件 
2023/11/16  22:14    <DIR>          ..
2023/11/16  22:14               399 asgi.py  # 异步
2023/11/16  22:14             3,353 settings.py   配置文件
2023/11/16  22:14               766 urls.py  #主路由,url 和函数的对应关系
2023/11/16  22:14               399 wsgi.py   #同步  主要使用这个
2023/11/16  22:14                 0 __init__.py  
               5 个文件          4,917 字节
               2 个目录 163,125,735,424 可用字节

# settings.py  #配置文件,只有一部分,程序启动会先度django默认配置文件,再才读这个settings.py
# urls.py  # 主路由,在里面编写url和函数的对应关系,例如 /xxx/xxx/      login

b.运行项目

python 复制代码
(.venv)d:\xxx\xxx>cd ..
(.venv)d:\xxx>dir

2023/11/16  22:14    <DIR>          .
2023/11/16  22:14    <DIR>          ..
2023/11/16  22:14               681 manage.py      #项目的管理工具
2023/11/16  22:14    <DIR>          xxx

(.venv)d:\xxx>python3 manage.py runserver     #后面不带参数默认是127.0.0.1:8000

# 也可以自定义端口
(.venv)d:\xxx>python3 manage.py runserver  127.0.0.1:9000

4.创建项目下对应的APP

python 复制代码
# 在manage.py 这个目录下执行如下命令就创建了一个web  的app
(.venv)d:\xxx>python3 manage.py startapp web


# 再次查看下d:\xxx\目录
(.venv)d:\xxx>dir

2023/11/16  22:14    <DIR>          .
2023/11/16  22:14    <DIR>          ..
2023/11/16  22:14               681 manage.py      #项目的管理工具
2023/11/16  22:14    <DIR>          xxx
2023/11/16  22:15    <DIR>          web


# 再进一步进到刚才创建的web app目录下看下

(.venv)d:\xxx>cd web
(.venv)d:\xxx\web>dir

2023/11/15  21:00                66 admin.py  # django提供的admin模块,一般不用
2023/11/15  21:00               144 apps.py   # app的基本配置,不用
2023/11/15  21:00    <DIR>          migrations # 对数据和表修改自动生成的文件
2023/11/15  21:00                60 models.py
2023/11/15  21:00                63 tests.py  #单元测试的
2023/11/15  21:00                66 views.py  # 这里写功能函数(url对应的函数)
2023/11/15  21:00                 0 __init__.py  # 导入模块用的文件,python自带的

5.完整的连贯的操作

pip install virturlenv

virtualenv .venv --python==python3.10

cd .venv/Script

activate.bat

pip install django==3.2

django-admin startproject xxx

manage.py startapp web xxx/ #可以指定路径,不写默认是本目录下

python3 manage.py runserver 127.0.0.1:9000

6.关于虚拟环境说明

在做测试时,可以把虚拟环境单独放一个目录,然后通过这个虚拟环境创建不同目录的项目,例如在可以E:\盘创建虚拟环境,但是项目可以都放在D:\盘

7.其它

  1. 使用pip包导出

(1)pip freezen > requirements.txt

该方法导出的的requirements.txt包含安装包所在路径,常用于一些大型项目的环境保存,一般大型项目会加载和运行多个环境,这个时候每个环境对应的位置也需要告知。

pip freezen > requirements.txt

1

(2)pip list --format=freeze >requirement.txt

该方法导出的requirements.txt不包含安装包所在路径,与常见的requirements.txt非常类似。

以上两种方法,导出的都是该环境里面所有安装的python包,但是有些包并不是该项目中所必备的依赖,有时候导出的一些包并不是项目运行所必要的。

pip list --format=freeze >requirement.txt

1

(3)使用pip和requirements.txt安装包

使用以下命令安装依赖包:

pip install -r requirements.txt

相关推荐
茯苓gao15 小时前
嵌入式开发笔记:CANopen相关移位运算与通信协议术语详解
网络·嵌入式硬件·学习·信息与通信
疋瓞15 小时前
python和C++对比(1)_数据类型和数据结构
数据结构·c++·python
如此这般英俊17 小时前
手搓Claude Code-第六章 subagent
数据结构·人工智能·python·语言模型·自然语言处理
元Y亨H17 小时前
Python - FastAPI 全方位介绍
python·fastapi
HERR_QQ18 小时前
强化学习的数学原理 学习笔记
人工智能·笔记·学习·自动驾驶
error:(19 小时前
【系统与实战双精通】VS Code 调试 ROS2 Python 节点与 Launch 系统指南
android·java·python
weigangwin19 小时前
LlamaIndex 第一次试用:别先写 RAG Demo,先验上下文合同
python·ai·agent·rag·检索·llamaindex·观测性
省四收割者19 小时前
一文详解信号完整性(1)
python·嵌入式硬件·数学建模·信息与通信·信号处理·智能硬件
MartinYeung519 小时前
[论文学习]DP-Fusion:面向大语言模型的令牌级差分隐私推理-深度解析
人工智能·学习·语言模型
ai生成式引擎优化技术20 小时前
从知识连接到智能组织:WSaiOS认知网络的理论框架与系统设计摘要
网络·python·plotly·django·pygame