美文网首页
Python实战计划week4_0_2项目

Python实战计划week4_0_2项目

作者: 乐小Pi孩_VoV | 来源:发表于2016-08-10 09:35 被阅读24次

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

    • Django 的 MTV 架构,我们先来看看这个:
      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项目

          本文链接:https://www.haomeiwen.com/subject/ipsdsttx.html