- 创建虚拟环境:在
C:\Users\Administrator\Desktop\new_s目录执行python -m venv venv - 激活虚拟环境:
.\venv\Scripts\Activate.ps1(终端前缀出现(venv)即成功) 如果报错权限问题,先执行:
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser- 安装 Django:激活环境后执行
pip install django(版本 3.2.25,已装在虚拟环境,非全局) - 创建 Django 项目:
django-admin startproject hengDaProject(生成项目根目录,内含manage.py) - 创建 7 个业务 App:进入项目根目录
cd hengDaProject,逐行执行python manage.py startapp homeApp/aboutApp/newsApp/productsApp/serviceApp/scienceApp/contactApp
二、核心文件结构(关键区分,避免进错目录)
项目根目录(hengDaProject/,和manage.py同级,终端需定位至此):manage.py(核心命令文件)、hengDaProject/(项目配置文件夹)、7 个 App 文件夹(homeApp / 等)
项目配置文件夹(hengDaProject/hengDaProject/):自带urls.py(总路由,自动生成)、settings.py、asgi.py等,无需新建
每个 App 文件夹(如 homeApp/):自动生成views.py(视图函数)、models.py等,无自带 urls.py,需手动新建
三、路由配置(核心步骤,已按 14 个页面配好,直接复用)
路由分总路由(项目级,分发请求)和子路由(App 级,对应具体页面),按以下代码全量替换 / 新建即可。
1. 项目总路由:hengDaProject/hengDaProject/urls.py(替换原有代码)
python
运行
from django.contrib import admin from django.urls import path, include # 新增include,用于分发路由 urlpatterns = [ path('admin/', admin.site.urls), # 后台管理路由(Django自带) path('', include('homeApp.urls')), # 首页,分发到homeApp path('aboutApp/', include('aboutApp.urls')), # 企业相关,分发到aboutApp path('contactApp/', include('contactApp.urls')), # 联系/招聘,分发到contactApp path('newsApp/', include('newsApp.urls')), # 新闻相关,分发到newsApp path('productsApp/', include('productsApp.urls')), # 产品相关,分发到productsApp path('serviceApp/', include('serviceApp.urls')), # 服务相关,分发到serviceApp path('scienceApp/', include('scienceApp.urls')), # 科研基地,分发到scienceApp ]2. 各 App 子路由:每个 App 下手动新建 urls.py,粘贴对应代码
表格
| App 名称 | 新建 urls.py 代码 |
|---|---|
| homeApp | from django.urls import path<br>from . import views<br>urlpatterns = [path('', views.index, name='index')] |
| aboutApp | from django.urls import path<br>from . import views<br>urlpatterns = [path('survey/', views.survey, name='survey'),path('honor/', views.honor, name='honor')] |
| contactApp | from django.urls import path<br>from . import views<br>urlpatterns = [path('contact/', views.contact, name='contact'),path('recruit/', views.recruit, name='recruit')] |
| newsApp | from django.urls import path<br>from . import views<br>urlpatterns = [path('company/', views.company, name='company'),path('industry/', views.industry, name='industry'),path('notice/', views.notice, name='notice')] |
| productsApp | from django.urls import path<br>from . import views<br>urlpatterns = [path('robot/', views.robot, name='robot'),path('monitoring/', views.monitoring, name='monitoring'),path('face/', views.face, name='face')] |
| serviceApp | from django.urls import path<br>from . import views<br>urlpatterns = [path('download/', views.download, name='download'),path('platform/', views.platform, name='platform')] |
| scienceApp | from django.urls import path<br>from . import views<br>urlpatterns = [path('science/', views.science, name='science')] |
四、视图函数配置(每个 App 的 views.py,替换原有代码,测试用)
每个 App 的views.py是页面逻辑核心,以下代码为测试版(访问页面显示文字,验证路由通断),直接替换各 App 原有views.py即可:
- homeApp/views.py:
from django.http import HttpResponse<br>def index(request):<br> return HttpResponse("✅ 首页") - aboutApp/views.py:
from django.http import HttpResponse<br>def survey(request): return HttpResponse("✅ 企业概况")<br>def honor(request): return HttpResponse("✅ 荣誉资质") - contactApp/views.py:
from django.http import HttpResponse<br>def contact(request): return HttpResponse("✅ 欢迎咨询")<br>def recruit(request): return HttpResponse("✅ 加入恒达") - newsApp/views.py:
from django.http import HttpResponse<br>def company(request): return HttpResponse("✅ 公司要闻")<br>def industry(request): return HttpResponse("✅ 行业新闻")<br>def notice(request): return HttpResponse("✅ 通知公告") - productsApp/views.py:
from django.http import HttpResponse<br>def robot(request): return HttpResponse("✅ 家用机器人")<br>def monitoring(request): return HttpResponse("✅ 智能监控")<br>def face(request): return HttpResponse("✅ 人脸识别解决方案") - serviceApp/views.py:
from django.http import HttpResponse<br>def download(request): return HttpResponse("✅ 资料下载")<br>def platform(request): return HttpResponse("✅ 人脸识别开放平台") - scienceApp/views.py:
from django.http import HttpResponse<br>def science(request): return HttpResponse("✅ 科研基地")
五、项目运行与页面访问(最终验证)
- 启动项目:终端定位到项目根目录(含
manage.py),执行python manage.py runserver - 访问 14 个页面:浏览器输入对应地址,均能显示测试文字即成功首页:http://127.0.0.1:8000/企业概况:http://127.0.0.1:8000/aboutApp/survey/荣誉资质:http://127.0.0.1:8000/aboutApp/honor/欢迎咨询:http://127.0.0.1:8000/contactApp/contact/加入恒达:http://127.0.0.1:8000/contactApp/recruit/公司要闻:http://127.0.0.1:8000/newsApp/company/行业新闻:http://127.0.0.1:8000/newsApp/industry/通知公告:http://127.0.0.1:8000/newsApp/notice/家用机器人:http://127.0.0.1:8000/productsApp/robot/智能监控:http://127.0.0.1:8000/productsApp/monitoring/人脸识别:http://127.0.0.1:8000/productsApp/face/资料下载:http://127.0.0.1:8000/serviceApp/download/开放平台:http://127.0.0.1:8000/serviceApp/platform/科研基地:http://127.0.0.1:8000/scienceApp/science/
六、关键问题与解决方案(避坑重点)
- 报错 “Couldn't import Django”:未激活虚拟环境 / 进错目录 / Django 装到全局,解决:激活
venv+ 定位到项目根目录 + 确保 Django 装在虚拟环境 - VS Code 报 Django 模块警告:编辑器未选虚拟环境的 Python 解释器,解决:左下角切换解释器为
.\venv\Scripts\python.exe(不切换也不影响项目运行) - 报错 “can't open file 'manage.py'”:终端进错目录,解决:执行
cd ..回到含manage.py的项目根目录 - startapp 命令报错:多个命令写一行,解决:逐行执行,一个命令一次回车
七、当前项目状态(全部完成,可直接开发)
✅ 虚拟环境正常激活,Django 安装无误✅ 7 个业务 App 全部创建,项目结构完整✅ 14 个页面路由(总 + 子)全配置,分发逻辑正确✅ 视图函数测试版完成,所有页面可正常访问✅ 核心命令文件manage.py可用,项目可启动 / 停止 / 后续扩展
下一步可做(开发方向)
- 在
settings.py中注册 7 个 App(INSTALLED_APPS添加 App 名称),支持模型 / 模板等功能 - 替换视图函数的
HttpResponse为模板渲染(render(request, '模板文件名.html')),制作前端页面 - 创建
templates模板文件夹和static静态文件夹(css/js/ 图片),实现页面美化 - 在
models.py中定义数据库模型,实现数据存储 / 查询