输出hello world

来源:互联网 发布:淘宝和易趣的相同点 编辑:程序博客网 时间:2024/06/04 18:31

接下来转向 Django 的视图,学习 Django
页的基础知识

第一个Django页面:Hello World!

如果不使用框架,我们可以直接在文本中输入Hello World!

把html上传到web服务器的某个目录里,在浏览器上访问

http://www.yourserver.com/hello.html

这里指你自己的服务器。

这个过程中有两个重要信息,URL和网页的内容

Django中也要这两个重要内容,但是方式不同 Django 的页面内容由视图函数(view function)生成,URLURL 配置里指定

第一个视图

mysite 目录中新建一个名为views.py的文件

这个模块用于编写视图,在views.py文件中输入以下代码:

from django.http import HttpResponsedef hello(request):    return HttpResponse("Hello world")

• 首先,从 django.http 模块中导入 HttpResponse 类。

• 然后,定义一个名为 hello 的函数,这是视图函数。

视图函数至少有一个参数,按约定,名为 request。

这是一个对象,包含触发这个视图的 Web 请求的信息,是django.http.HttpRequest 类的实例。

这里我们没用到request,但是必须作为第一个参数传给视图。

这个函数定义体只有一行:
使用文本”Hello World”实例化的HttpResponse对象。

视图就是普通的函数

它的第一个参数是HttpResponse对象

返回值是一个HttpResponse实例

Python函数想成为Django视图就要做这两件事

现在运行

Python manage.py runserver

看到的仍然是
Welcome to Django

因为现在mysite项目还不知道有hello视图的存在,所以我们要告诉Django在某个URL上激活这个视图,所以我们要把URL映射到相应的视图上

接下来我们打开urls.py文件

文件默认内容如下:

"""mysite URL ConfigurationThe urlpatterns list routes URLs to views. For more information please see:https://docs.djangoproject.com/en/1.8/topics/http/urls/Examples:Function views1. Add an import: from my_app import views2. Add a URL to urlpatterns: url(r'^$', views.home, name='home')Class-based views1. Add an import: from other_app.views import Home2. Add a URL to urlpatterns: url(r'^$', Home.as_view(), name='home')Including another URLconf1. Add an import: from blog import urls as blog_urls2. Add a URL to urlpatterns: url(r'^blog/', include(blog_urls))"""from django.conf.urls import include, urlfrom django.contrib import adminurlpatterns = [url(r'^admin/', include(admin.site.urls)),]

我们来分析这段代码:

from django.conf.urls import include, urlfrom django.contrib import adminurlpatterns = [url(r'^admin/', include(admin.site.urls)),]

• 从 django.conf.urls 模块中导入两个函数:include,用于导入另一个 URL 配置模块;url,使用正则表达式模式匹配浏览器中的 URL,把它映射到 Django 项目中的某个模块上。

• 从 django.contrib 模块中导入 admin 函数。这个函数传给 include 函数,加载 Django 管理后台
的 URL。

• 第三行是 urlpatterns,即 url() 实例列表。,Django期望URL配置模块中有这个变量。它负责定义URL与处理URL代码之间的映射。

在URL配置中添加URL和视图的方法如下:

添加hello视图:

from django.conf.urls import include, urlfrom django.contrib import adminfrom mysite.views import hellourlpatterns = [url(r'^admin/', include(admin.site.urls)),url(r'^hello/$', hello),]

• Python 导入句法中要使用 mysite.views,从模块中导入 hello 视图。

• 然后,把 url(r’^hello/$’, hello), 这行代码添加到 urlpatterns 中。我们添加的这行代码称为一个
URL 模式(URLpattern)。url() 函数告诉 Django 如何处理我们配置的 URL。第一个参数是模式匹配字符串,第二个参数是模式使用的视图函数。url() 还有一个可选参数。

正则表达式请参加其他文章

接下来运行

Python manage.py rumserver

想刚开始那样启动Django开发服务器,如果开发服务器一直运行着会自动检测Python代码的变化,不用重启。

开发服务器运行在 http://127.0.0.1:8000/ 地址上
因此要在 Web 浏览器中访问

http://127.0.0.1:8000/hello/

应该能看到文本输出

现在URL配置只定义了一个URL模式,也就是处理/hello/URL的那个,所以请求其他URL会发生错误:

这个页面除了显示 404 错误消息之外,还给出了其他信息。它会告诉你 Django 使用的是哪个 URL 配置,以及那个配置里的各个模式。根据这些信息你应该能判断为什么所请求的 URL 会返回 404 错误。

这敏感信息只供 Web 开发者查看。线上网站不应该公开显示这些信息。鉴于此

“Page notfound”页面仅当 Django 项目处于调试模式时才会显示。

文会说明如何解除调试模式。现在,你只需知道,创建 Django 项目后

它就处于调试模式。如果不在调试模式中,Django 会输出其他的 404 响应。

原创粉丝点击