Python实战计划week4_0_2项目

在上一个项目,我们创建了一个名为myproject的虚拟环境,并在里面创建了一个 my_one的django项目,以及一个 my_app1 的 Django app。

  • Django 的 MTV 架构,我们先来看看这个:
    Python实战计划week4_0_2项目_第1张图片
    a1.png

    1.浏览器送出 HTTP request
    2.Django 依据 URL configuration 分配至对应的 View
    3.View 进行资料库的操作或其他运算,并回传 HttpResponse物件
    4.浏览器依据 HTTP response 显示网页页面

下面我们将实践这四个步骤:

  1. 发出一个HTTP request, http://127.0.0.1:8000/hello/

2.Django 依据 URL configuration 分配至对应的 View,注意我们提前要在view中的操作:

# my_app1/views.py

from django.http import HttpResponse
#从django.http模块中引用 HttpResponse

def hello_world(request):
    return HttpResponse("Hello World!")
  • 宣告 hello_world这个view,就是一个函数
  • 当 hello_world被呼叫时,回传包含字符串 HelloWorld! 的 HttpResponse 物件。

3.那么当我们访问1中的url,怎样才会触发到2中的hello_world(),并返回值呢?很显然,我们需要一个桥梁来连接两边。

这就是Django URL,有人浏览 http://127.0.0.1:8000/hello/ 时 ,hello_world()这个view function 需要被执行,而这个对应关系就是 URL conf (URL configuration)。

现在我们来设定 Hello World 范例的 URL conf。

# my_one/urls.py

from django.conf.urls import include, url
from django.contrib import admin
# Import view functions from trips app.
from my_app1.views import hello_world

urlpatterns = [
    url(r'^admin/', include(admin.site.urls)),
    url(r'^hello/$', hello_world),
]
  • 以上程式透过 url() function传入两个参数 regex, view:url(regex, view)
    regex -- 定义的 URL 规则
    规则以 regular expression(正则表达式)来表示
    r'^hello/$'代表的是 hello/这种 URL
    view -- 对应的 view function
    指的是 hello_world这个 view

4.浏览器的页面显示:

hello world!

你可能感兴趣的:(Python实战计划week4_0_2项目)