django hello world
vscode+python3.9+django,学习过程记录
一、下载django
我是在终端全局下载
pip install django
版本验证:
python3 -m django --version
4.2.25
二、创建虚拟环境文件夹
1、为项目创建独立的虚拟环境
python3 -m venv .venv
ls -a
. .. .venv
2、激活环境
source .venv/bin/activate
显示虚拟环境名称,表示激活成功:
(.venv) xx@xxdeMacBook-Pro Django_demo %
3、在虚拟环境中安装django
pip install django
版本验证:
(.venv) xx@xxdeMacBook-Pro Django_demo % python3 -m django --version
4.2.25
三、创建django项目
django-admin startproject demo
自动生成了这样的目录结构:

四、配置vscode
1、在vs商店安装python和django扩展,以支持语法高亮
python :必选
django: 可选

2、设置python解释器
选择刚才创建的venv虚拟环境
Mac 按 Cmd+Shift+P(Mac)或 Ctrl+Shift+P(Windows)打开命令面板,找半天没找到非快捷键的方式。
输入 Python: Select Interpreter,选择虚拟环境中的Python路径(如 ./venv/bin/python)

3、运行与调试
python manage.py runserver
服务端监听:

浏览器访问:

五、hello world
1、创建hello_world项目
python manage.py startapp hello
会自动生成一个hello_world文件夹,当前的目录结构是:

2、修改hello_world/views.py
from django.http import HttpResponse
def home(request):
return HttpResponse("Hello, Django!")
3、创建hello_world/url.py
from django.urls import path
from hello import views
urlpatterns = [
path("", views.home, name="home"),
]
4、修改demo目录下的urls.py
from django.contrib import admin
from django.urls import include,path
from hello_world import views
urlpatterns = [
path('admin/', admin.site.urls),
path("", include("hello_world.urls")),
]
添加path("", include("hello_world.urls")),
import加上 include, from django.urls import include,path
5、启动服务
python3 manage.py runserver 8888
6、访问主页

Refer:官方文档,https://code.visualstudio.com/docs/python/tutorial-django
六、Django的目录结构
按照上面操作下来后,我发现此时有两个项目目录:

| 层级 | 作用 | 举例 |
|---|---|---|
| Project(项目) | 整个网站或服务的整体配置(如数据库、全局URL、全局配置) | demo/ |
| App(应用) | 某个功能模块(如用户系统、博客、支付模块) | hello_world/ |
也就是说:
demo/ 是 项目级目录(包含全局配置)。
hello_world/ 是 应用级目录(你新建的应用模块)。
1、为什么要新建一个目录
这不是“必须”的,但是最佳实践。原因如下:
项目的职责划分清晰
demo/:放全局配置(如数据库、模板、静态资源路径、全局路由)。
hello_world/:放某一具体功能模块的代码(views、urls、models等)。
便于扩展多个模块,如你后续要做:
- users(用户登录注册)
- blog(文章管理)
- api(接口模块)
每个模块一个 App,互不干扰,结构清晰。
demo/ ← 项目根目录(名字随意)
│
├── manage.py ← 项目启动入口
│
├── demo/ ← 项目配置目录(和项目名同名)
│ ├── init.py
│ ├── settings.py ← 全局配置文件
│ ├── urls.py ← 全局路由入口
│ ├── wsgi.py ← 部署用(Web Server Gateway Interface)
│ └── asgi.py ← 异步服务器接口(如 WebSocket)
│
└── hello_world/ ← 你新建的功能模块(App)
├── views.py ← 控制器(定义响应逻辑)
├── urls.py ← 模块路由
├── models.py ← 数据模型
└── ...
方便复用与移植:
App 是可以被单独移植的,比如你写了一个通用的评论系统,就可以独立打包成一个 Django App,放进其他项目中直接用。
七、运行逻辑
[浏览器请求] → http://127.0.0.1:8000/
↓
[manage.py] 启动开发服务器
↓
[settings.py] 加载配置(中间件、App、数据库等)
↓
[demo/urls.py] 作为全局URL入口
↓
include() 调用
↓
[hello_world/urls.py] 匹配 path("", views.index)
↓
[hello_world/views.py] 执行 index(request)
↓
返回 HttpResponse("Hello, Django!")
↓
[浏览器显示页面]
八、项目demo-留言板
项目结构:

Django 借鉴传统的 MVC 架构(Model-View-Controller),但又做了一些调整,形成了它自己的变体结构:MVT(Model–View–Template)。
| 模块 | 全称 | 职责 | Django 中的体现 |
|---|---|---|---|
| Model | 模型层 | 定义和操作数据库 | models.py |
| View | 视图层 | 接收请求、处理逻辑、返回响应 | views.py |
| Template | 模板层 | 渲染 HTML,展示内容 | templates/*.html |
执行流程:
用户请求 → URLconf → View(业务逻辑)→ Model(取数)→ Template(渲染)→ 返回页面
除此之外,Django自带了admin后台管理模块,能够开箱即用;
Django还具备一些安全属性,如:防SQL注入/XSS/CSRF、权限管理、会话管理等,Django底层已经封装好了,用户只需要关注业务代码的实现。
8.1 功能展示
管理后台

登陆页面

留言页面

用户注册

本文来自博客园,作者:人间修行,转载请注明原文链接:https://www.cnblogs.com/ffx1/p/19172520

浙公网安备 33010602011771号