使用 Pycharm 虚拟环境创建 Django 项目
前言:本文详细介绍了如何在 Pycharm 中创建虚拟环境,并完成一个简单的 Django 项目搭建,可以实现多页面相互跳转,对于实现过程中遇到的问题提供了具体的解决方案。
通过本文示例,可以快速理清楚基本的路由链接关系,打好基础后,就可以逐步完善 web 界面,最终实现 web 的开发。
一、为什么要使用虚拟环境
虚拟环境是 Python 项目的“隔离舱”,能有效解决依赖冲突、简化协作,是开发中不可或缺的一环。从第一个项目开始养成使用虚拟环境的习惯,未来会少很多麻烦。激活虚拟环境后,终端提示符会显示 (venv),表示已进入虚拟环境。
- 依赖隔离
问题:不同项目可能依赖同一个库的不同版本。例如:
项目 A 需要 numpy==1.20
项目 B 需要 numpy==1.25
后果:全局安装会导致版本冲突,项目无法正常运行
解决方案:虚拟环境为每个项目创建独立的依赖空间,互不干扰
- 避免污染全局环境
问题:直接在系统 Python 中安装库可能导致:
系统工具(如 apt、yum)依赖的 Python 包被意外覆盖
全局环境臃肿,难以管理
解决方案:虚拟环境将项目依赖限制在本地目录,不影响系统或其他项目
- 便于协作与部署
问题:他人运行你的代码时,可能因缺少依赖或版本不匹配而报错
解决方案:
通过 requirements.txt 记录所有依赖(生成方式:pip freeze > requirements.txt)
他人只需在虚拟环境中一键安装:pip install -r requirements.txt
- 支持多版本 Python
场景:某些项目可能需要旧版 Python(如 Python 3.6),而其他项目使用新版 Python(如 3.11)
解决方案:虚拟环境可以绑定到特定 Python 版本(例如使用 pyenv + virtualenv)
- 简化调试与测试
场景:调试时需确保环境干净,排除无关依赖的干扰。
解决方案:在虚拟环境中从头安装依赖,精准复现问题。
二、什么是 Django
Django 是一个基于 Python 的高效、全功能的开源 Web 框架,旨在帮助开发者快速构建安全、可维护的 Web 应用。提供大量内置功能,无需额外安装第三方库即可完成大部分开发任务。核心特点:
- 高效开发
自动生成管理后台(Admin Panel),支持数据的增删改查
内置 ORM(对象关系映射),无需直接编写 SQL 即可操作数据库
自带模板引擎、表单处理、用户认证等模块
- 安全性
自动防御常见攻击(如 SQL 注入、XSS、CSRF)
用户密码默认哈希加密存储
- 可扩展性
支持微服务架构,可通过中间件(Middleware)灵活扩展功能
适合从小型博客到大型电商平台的各种项目
- 社区与生态
拥有庞大的开发者社区和丰富的第三方库(如 DRF 用于构建 REST API)
完善的官方文档和教程
官方文档:Django overview | Django
三、具体实现步骤
1、Pycharm创建虚拟环境
创建 project
Terminal 显示 PS,不是 venv,但是右下角和左上角正常
Settings 里显示的也是 venv
设置 terminal 的路径
重启 pycharm,终端提示符显示 (venv),表示已进入虚拟环境
2、安装 Django
在 Settings 里选中自己的项目,安装 Django
这里出现报错,查看 details
从 details 中可以看出是 pip 版本不适配导致的报错
升级 pip,双击项目中的 “pip”,进入安装页面安装。选择相对新的一个版本即可,我这里尝试过安装 “24.2” 版本的,报错了,找个 python 对应能下版本范围内相对新的版本即可
升级 pip 后,再次尝试安装 “django-4.2.9” 版本依然报错
通过查阅发现,我的 python 是 3.7 的,适用的 Django 版本是3.2,这里大家可以在网上自行找 python 版本对应的 Django 版本
更换 Django 3.2 里面最新的 3.2.25,安装成功
3、创建 Django 项目
使用 “django-admin startproject 项目名” 语句创建 Django 项目,下图的 analysisWEB 是我的项目名称,大家可以自行取名字
创建完毕后,项目会生成对应文件夹,目录说明:
- analysisWEB : 项目的容器
- manage.py: 一个实用的命令行工具,可让你以各种方式与该 Django 项目进行交互
- analysisWEB/__init__.py: 一个空文件,告诉 Python 该目录是一个 Python 包
- analysisWEB/asgi.py: 一个 ASGI 兼容的 Web 服务器的入口,以便运行你的项目
- analysisWEB/settings.py: 该 Django 项目的设置/配置
- analysisWEB/urls.py: 该 Django 项目的 URL 声明; 一份由 Django 驱动的网站 "目录"
- analysisWEB/wsgi.py: 一个 WSGI 兼容的 Web 服务器的入口,以便运行你的项目
继续在 terminal,进入新建的项目(cd),然后输入:python manage.py runserver,运行项目,就会显示端口
点击 “http://127.0.0.1:8000/”,启动正常,会出现下图界面
4、创建应用(app)
在 Django 中的一个 app 代表一个功能模块,Django 规定,如果要使用模型,必须要创建一个 app
python manage.py startapp resource
创建成功后,可以看到目录结构增加了 “resource”
5、注册应用
在创建的 Django 项目中添加刚刚创建的 app(resource)
在 app 中创建文件夹 templates,用来放 html
在 templates 文件夹下创建一个 html 文件:index.xml
这里简单编辑一下 index.xml,顺利的话,页面会显示 “测试创建的APP中的index页面。”
6、声明 APP 创建的 html 位置
“DIRS” 用于声明 html 的位置,将下面的代码填写进去
os.path.join(BASE_DIR, 'templates')
这里注意,如果 “os” 标红线报错,需要在顶部导入 os 模块
import os.path
7、编辑 app 中的 views 用来链接到 html
8、把 app(resource)和 Django 做个链接
9、在 terminal 中运行项目
python manage.py runserver
点击链接,发现报错
这是因为没指定详细目录,加上 index 后,可以看出输出正确,到这里,一个简单的 Django 项目就已经完成了
10、提高 —— 多个界面相互跳转
下面要创建 a、b、c 三个 html 页面,实现三个页面的相互跳转,因为 html 比较多,在 app 中新建一个 urls.py 文件,具体操作如下:
(1)修改主路由的 urls,直接指向 app 的 urls
(2)编辑 app 中的 views (这部分截图是后期开发的时候补的,import 部分可以不必全部照写,需要什么导入什么)
Views 是 Django 的“控制器”,负责处理用户的请求(HTTP Request),执行逻辑操作(如读写数据库、计算数据),并返回响应(HTTP Response),是连接 模型(Model) 和 模板(Template) 的桥梁。
具体代码为:
def a_view(request): return render(request, 'a.html') def b_view(request): return render(request, 'b.html') def c_view(request): return render(request, 'c.html')
(3)编辑 app 中的 urls
URL 配置 是 Django 的“路由表”,决定用户访问的 URL 路径由哪个视图处理,通过正则表达式或路径匹配,将 URL 映射到对应的视图函数或类。
具体代码为:
from django.urls import path from . import views urlpatterns = [ path('index/', views.index_view), path('a/', views.a_view, name='a'), path('b/', views.b_view, name='b'), path('c/', views.c_view, name='c'), ]
(4)新建 a.html、b.html、c.html 文件
代码A: Page A
This is Page A
Go to Page B
Go to Page C 代码B: Page BThis is Page B
Go to Page A
Go to Page C 代码C: Page CThis is Page C
Go to Page A
Go to Page B在 terminal 中通过 python manage.py runserver 运行项目,会出现下图界面,点击可以互相跳转
- 社区与生态
- 可扩展性
- 安全性
- 高效开发
- 简化调试与测试
- 支持多版本 Python
- 便于协作与部署
- 避免污染全局环境