Day_15 · Django 第一个页面:跑通"请求 → 响应" #16

Open
opened 2026-08-22 17:26:38 +08:00 by shimmer · 22 comments
Owner

题目与教程详见仓库对应目录 Day_15/README.md(本仓库已克隆即得)。

预计耗时:30 分钟
终点站!今天你的程序第一次变成"网站":浏览器访问它,它返回内容。之后你就可以挑战仓库里的进阶任务了。

今日知识点

  • django-admin startproject mysite:创建 Django 项目(一个文件夹骨架)
  • python manage.py runserver:启动开发服务器(默认 http://127.0.0.1:8000/)
  • 视图函数 def index(request)::接收请求,返回 HttpResponse(...)
  • urls.py 路由:把网址路径(如 /)和视图函数对应起来

先学(教程)

任务(后做)

全程在命令行操作(跟着做,卡住就把报错贴工单里):

  1. 创建项目(在自己方便的位置):
    django-admin startproject mysite
    cd mysite
    
  2. 启动服务器:
    python manage.py runserver
    
    浏览器打开 http://127.0.0.1:8000/ ,应该看到 Django 的欢迎页(一只火箭/小飞机)。
    先截个图。
  3. 关闭服务器(命令行按 Ctrl+C),让页面显示你自己的内容:
    • 用编辑器打开 mysite/mysite/views.py,先什么都不写(这个文件原本是空的),
      改成下面这样:
      from django.http import HttpResponse
      
      def index(request):
          return HttpResponse("Hello, Django!")
      
    • 打开 mysite/mysite/urls.py,把 urlpatterns 改成:
      from django.contrib import admin
      from django.urls import path
      from . import views
      
      urlpatterns = [
          path("admin/", admin.site.urls),
          path("", views.index),
      ]
      
    • 重新 python manage.py runserver,刷新 http://127.0.0.1:8000/ ,
      应该看到 Hello, Django! 大字。
  4. 进阶(加分):创建一个应用(Django 的"模块"):
    python manage.py startapp blog
    
    然后把视图和路由挪到 blog 应用里(提示:blog/views.py 里写视图函数,
    mysite/urls.py 里用 path("", include("blog.urls")))。
    做完记得把 blog 加进 settings.py 的 INSTALLED_APPS。

卡壳求助:任何一步报错,把完整报错文字贴在当日工单里,学长会帮你。

完成标准

  • http://127.0.0.1:8000/ 显示 Hello, Django!
  • 能说出来:浏览器输入网址后,你的 Django 程序做了什么(URL → 视图 → 返回内容)
  • (进阶)blog 应用跑通

提交方式:把显示 Hello, Django! 的浏览器截图贴在当日工单评论里。

参考解答(先做再看)

from django.http import HttpResponse

def index(request):
    return HttpResponse("Hello, Django!")

from django.contrib import admin
from django.urls import path
from . import views

urlpatterns = [
    path("admin/", admin.site.urls),
    path("", views.index),
]

> 题目与教程详见仓库对应目录 Day_15/README.md(本仓库已克隆即得)。 > 预计耗时:30 分钟 > 终点站!今天你的程序第一次变成"网站":浏览器访问它,它返回内容。之后你就可以挑战仓库里的进阶任务了。 ## 今日知识点 - `django-admin startproject mysite`:创建 Django 项目(一个文件夹骨架) - `python manage.py runserver`:启动开发服务器(默认 http://127.0.0.1:8000/) - 视图函数 `def index(request):`:接收请求,返回 `HttpResponse(...)` - `urls.py` 路由:把网址路径(如 `/`)和视图函数对应起来 ## 先学(教程) - B站 Django(看"创建项目""启动运行""Hello World"几讲):https://www.bilibili.com/video/BV1L8bpeXET5/ - 菜鸟教程 Django("创建项目"一节):https://www.runoob.com/django/django-tutorial.html ## 任务(后做) 全程在命令行操作(跟着做,卡住就把报错贴工单里): 1. 创建项目(在自己方便的位置): ``` django-admin startproject mysite cd mysite ``` 2. 启动服务器: ``` python manage.py runserver ``` 浏览器打开 http://127.0.0.1:8000/ ,应该看到 Django 的欢迎页(一只火箭/小飞机)。 先截个图。 3. 关闭服务器(命令行按 Ctrl+C),让页面显示你自己的内容: - 用编辑器打开 `mysite/mysite/views.py`,**先什么都不写**(这个文件原本是空的), 改成下面这样: ```python from django.http import HttpResponse def index(request): return HttpResponse("Hello, Django!") ``` - 打开 `mysite/mysite/urls.py`,把 `urlpatterns` 改成: ```python from django.contrib import admin from django.urls import path from . import views urlpatterns = [ path("admin/", admin.site.urls), path("", views.index), ] ``` - 重新 `python manage.py runserver`,刷新 http://127.0.0.1:8000/ , 应该看到 **Hello, Django!** 大字。 4. **进阶(加分)**:创建一个应用(Django 的"模块"): ``` python manage.py startapp blog ``` 然后把视图和路由挪到 `blog` 应用里(提示:`blog/views.py` 里写视图函数, `mysite/urls.py` 里用 `path("", include("blog.urls"))`)。 做完记得把 `blog` 加进 `settings.py` 的 `INSTALLED_APPS`。 > 卡壳求助:任何一步报错,把**完整报错文字**贴在当日工单里,学长会帮你。 ## 完成标准 - [ ] http://127.0.0.1:8000/ 显示 **Hello, Django!** - [ ] 能说出来:浏览器输入网址后,你的 Django 程序做了什么(URL → 视图 → 返回内容) - [ ] (进阶)blog 应用跑通 **提交方式**:把显示 `Hello, Django!` 的浏览器**截图**贴在当日工单评论里。 ## 参考解答(先做再看) ```python from django.http import HttpResponse def index(request): return HttpResponse("Hello, Django!") from django.contrib import admin from django.urls import path from . import views urlpatterns = [ path("admin/", admin.site.urls), path("", views.index), ] ```

QQ20260904-124522.png
QQ20260904-130523.png

![QQ20260904-124522.png](/attachments/22310d34-c2d3-4e3a-907e-82a3d5c33265) ![QQ20260904-130523.png](/attachments/c3cec8c4-5956-4445-9d06-80a0bc431be3)

image.pngimage.png

<img width="1280" alt="image.png" src="attachments/4411dcbb-4368-4d7b-a452-e4fde0154ea3"><img width="617" alt="image.png" src="attachments/79bd9c4d-d17d-4a88-9b4c-8d2be597cc97">
c0f66cc83f9e65c8920b229d2c155098.png
<img width="585" alt="c0f66cc83f9e65c8920b229d2c155098.png" src="attachments/98ee3164-2c1c-4be5-a66c-3ded58b69129">
image.png image.png image.png image.png 屏幕截图 2026-09-19 083319.png
<img width="679" alt="image.png" src="attachments/195dab8c-143f-4dc6-9a3f-159fa2dd2fbc"> <img width="505" alt="image.png" src="attachments/405a96ad-bdb8-4f01-8d4c-0bd51cd0a2ec"> <img width="324" alt="image.png" src="attachments/c12eb109-cb14-4cd0-b2fc-8471ac602d0d"> <img width="254" alt="image.png" src="attachments/9d2ac452-4e07-4d4f-9266-c58958a84713"> <img width="1280" alt="屏幕截图 2026-09-19 083319.png" src="attachments/00265f0b-af47-40eb-8e6d-de8716ba1605">

创建项目:

Screenshot From 2026-09-23 20-22-53.png

显示自定义内容(blog应用跑通后效果相同):

Screenshot From 2026-09-23 20-28-32.png

blog应用相关代码:

Screenshot From 2026-09-23 20-47-46.png

### 创建项目: ![Screenshot From 2026-09-23 20-22-53.png](/attachments/0c04c79a-3b07-41fb-bfb3-7c1fd71c1042) ### 显示自定义内容(blog应用跑通后效果相同): ![Screenshot From 2026-09-23 20-28-32.png](/attachments/e8e314e7-ba07-4d8d-83b2-00ec14f5ae04) ### blog应用相关代码: ![Screenshot From 2026-09-23 20-47-46.png](/attachments/66145d4e-45c9-4115-ac11-7776e51423c3)
capture_20260923213435147.png
<img width="1152" alt="capture_20260923213435147.png" src="attachments/7976ea34-240e-4d48-bf61-5319d229e543">

QQ_1790437767262.png

![QQ_1790437767262.png](/attachments/8b92eb8f-1389-4a73-ba87-467ef7dcf751)

屏幕截图 2026-09-27 113009.png屏幕截图 2026-09-27 113944.png

<img width="1279" alt="屏幕截图 2026-09-27 113009.png" src="attachments/944e5133-dec3-4c1d-b71e-fbf1e9b14b6f"><img width="1279" alt="屏幕截图 2026-09-27 113944.png" src="attachments/14704302-3946-4b46-8f1a-9525126c760f">
image.png
<img width="2879" alt="image.png" src="attachments/a4a6e04e-98c4-4106-a6f4-cba7e3a3907c">
464 KiB
image.png
<img width="920" alt="image.png" src="attachments/4838236a-8ada-4f33-a065-923819f16437">
525 KiB

83f8e26ebedcc5edaba17521d9215969.pngcaa5a9746aceb1c6d7be2fcca2d1ede8.png

<img width="1896" alt="83f8e26ebedcc5edaba17521d9215969.png" src="attachments/bcfe6514-edf4-4db9-b0dd-f868460cc4f3"><img width="1910" alt="caa5a9746aceb1c6d7be2fcca2d1ede8.png" src="attachments/cc81469f-fd3b-4ad1-98f9-e292f5d83a9c">

图片.png

![图片.png](/attachments/407fb10a-7f67-4616-907e-010f894db0a5)
135 KiB

image.png

![image.png](/attachments/ad510313-fe1a-48b9-a733-68c1743c9c9d)

image.png

![image.png](/attachments/4799e945-15f6-4773-9c54-1a98c2c9e09e)
294 KiB
image.png
<img width="1280" alt="image.png" src="attachments/9c4af609-d389-4fdc-a52e-1ac6b1aab205">
521 KiB

image.png

![image.png](/attachments/3956ea73-dafa-4883-8c82-78dd85eff7b7)

6401567e27b058874cd3fcdaf3665e7e.jpg

![6401567e27b058874cd3fcdaf3665e7e.jpg](/attachments/48df188f-edfe-431f-98d5-f8fdb017d2bd)

Day_15 · Django 第一个页面:请求→响应

django-admin startproject 建项目 → views.py 返回自己的内容 → urls.py 配路由 → runserver,GET / 返回 200

day15.png

浏览器实际打开的页面:

day15_page.png

**Day_15 · Django 第一个页面:请求→响应** django-admin startproject 建项目 → views.py 返回自己的内容 → urls.py 配路由 → runserver,GET / 返回 200 ![day15.png](https://cdn.jsdelivr.net/gh/xu675693517-hue/hello-daily-challenge@main/screenshots/day15.png) 浏览器实际打开的页面: ![day15_page.png](https://cdn.jsdelivr.net/gh/xu675693517-hue/hello-daily-challenge@main/screenshots/day15_page.png)

建立了blog应用
image.png
image.png

建立了blog应用 ![image.png](/attachments/0f336295-4602-4f53-9525-3c77ee8ab19e) ![image.png](/attachments/02aa9e26-e20b-4972-a0d7-cf9c03a21ec8)
Sign in to join this conversation.