00-django | 02-处理HTTP请求
00-django | 02-处理HTTP请求Django 处理 HTTP 请求Hello 视图函数我们先以一个最简单的 Hello World 为例来看看 django 处理上述问题的机制是怎么样的。 绑定 URL 与视图函数当用户访问不同的网址时,Django需要知道如何处理这些网址(路由)。django 的做法是把不同的网址对应的处理函数写在一个 . ├── __init__.py ├── admin.py ├── apps.py ├── migrations ├── models.py ├── static ├── tests.py ├── urls.py #这个 └── views.py
from django.urls import path
from . import views
urlpatterns = [
path(‘‘,views.index,name=‘index‘),]
解释:
. ├── Pipfile ├── Pipfile.lock ├── blog │?? ├── __init__.py │?? ├── settings.py │?? ├── urls.py │?? └── wsgi.py ├── db.sqlite3 ├── firstblog │?? ├── __init__.py │?? ├── admin.py │?? ├── apps.py │?? ├── migrations │?? ├── models.py │?? ├── static │?? ├── tests.py │?? ├── urls.py # 修改的是这个 │?? └── views.py ├── manage.py
编写视图函数第二步就是要实际编写我们的?views.index?视图函数了,按照惯例视图函数定义在 views.py 文件里: from django.http import HttpResponse def index(request): return HttpResponse("欢迎访问我的博客首页!") WEB服务器的本质就是==接收用户的http请求,也就是 配置项目 URL前面建立了一个 urls.py 文件,并且绑定了 URL 和视图函数?index,还要让Django知道去找这个 from django.contrib import admin
from django.urls import path,include
urlpatterns = [
path(‘admin/‘,admin.site.urls),path(‘‘,include(‘firstblog.urls‘)),]
我们这里导入了一个? . ├── Pipfile ├── Pipfile.lock ├── blog │?? ├── __init__.py │?? ├── settings.py │?? ├── urls.py #改的这个 │?? └── wsgi.py ├── db.sqlite3 ├── firstblog │?? ├── __init__.py │?? ├── admin.py │?? ├── apps.py │?? ├── migrations │?? ├── models.py │?? ├── static │?? ├── tests.py │?? ├── urls.py │?? └── views.py ├── manage.py 运行结果运行?
使用 django 模板系统写好处理 HTTP 请求和返回 HTTP 响应的视图函数,然后把视图函数绑定到相应的 URL 上。 这就是Django处理HTTP的流程。 但我们不能每次都把大段的内容传给?HttpResponse。django 对这个问题给我们提供了一个很好的解决方案,叫做模板系统。django 要我们把大段的文本写到一个文件里,然后 django 自己会去读取这个文件,再把读取到的内容传给? 添加模板首先在我们的项目根目录(即 manage.py 文件所在目录)下建立一个名为 . ├── Pipfile ├── Pipfile.lock ├── blog ├── db.sqlite3 ├── firstblog ├── manage.py └── templates └── blog └── index.html 在 <!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>{{ title }}</title>
</head>
<body>
<h1>{{ welcome }}</h1>
</body>
</html>
用 模板写好了,还得告诉 django 去哪里找模板,在 TEMPLATES = [ { ‘BACKEND‘: ‘django.template.backends.django.DjangoTemplates‘,‘DIRS‘: [os.path.join(BASE_DIR,‘templates‘)],#修改成这样 ‘APP_DIRS‘: True,‘OPTIONS‘: { 其中? 这里? from django.shortcuts import render
def index(request):
return render(request,‘blog/index.html‘,context={
‘title‘: ‘我的博客首页‘,‘welcome‘: ‘欢迎访问我的博客首页‘
})
调用 django 提供的? References[1]?HelloGitHub-Team 仓库:?https://github.com/HelloGitHub-Team/HelloDjango-blog-tutorial (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |