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 

自动生成了这样的目录结构:
image

四、配置vscode

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

image

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

image

3、运行与调试

python manage.py runserver

服务端监听:
image

浏览器访问:
image

五、hello world

1、创建hello_world项目

python manage.py startapp hello

会自动生成一个hello_world文件夹,当前的目录结构是:
image

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、访问主页
image

Refer:官方文档,https://code.visualstudio.com/docs/python/tutorial-django

六、Django的目录结构

按照上面操作下来后,我发现此时有两个项目目录:
image

层级 作用 举例
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-留言板

项目结构:
image

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 功能展示

管理后台

image

登陆页面

image

留言页面

image

用户注册

image

posted @ 2025-10-29 11:28  人间修行  阅读(7)  评论(0)    收藏  举报