输出hello world

接下来转向 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 HttpResponse
def 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 Configuration
The urlpatterns list routes URLs to views. For more information please see:
https://docs.djangoproject.com/en/1.8/topics/http/urls/
Examples:
Function views
1. Add an import: from my_app import views
2. Add a URL to urlpatterns: url(r'^$', views.home, name='home')
Class-based views
1. Add an import: from other_app.views import Home
2. Add a URL to urlpatterns: url(r'^$', Home.as_view(), name='home')
Including another URLconf
1. Add an import: from blog import urls as blog_urls
2. Add a URL to urlpatterns: url(r'^blog/', include(blog_urls))
"""
from django.conf.urls import include, url
from django.contrib import admin
urlpatterns = [
url(r'^admin/', include(admin.site.urls)),
]

我们来分析这段代码:

from django.conf.urls import include, url
from django.contrib import admin
urlpatterns = [
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, url
from django.contrib import admin
from mysite.views import hello
urlpatterns = [
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 响应。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值