django之urls与视图函数views的简单学习

我们先了解一下urls和views分别是干嘛用的:

  • urls:

URL配置(URLconf)就像Django 所支撑网站的目录。它的本质是URL与要为该URL调用的视图函数之间的映射表

你就是以这种方式告诉Django,对于这个URL调用这段代码,对于那个URL调用那段代码

urls.py里面的基本格式如下:

from django.conf.urls import url
 
urlpatterns = [
     url(正则表达式, views视图函数,参数,别名),
]

一般我们只会用到url里面的前两个参数。

  • views:

一个视图函数(类),简称视图,是一个简单的Python 函数(类),它接受Web请求并且返回Web响应。

响应可以是一张网页的HTML内容,一个重定向,一个404错误,一个XML文档,或者一张图片。

无论视图本身包含什么逻辑,都要返回响应。代码写在哪里也无所谓,只要它在你当前项目目录下面。除此之外没有更多的要求了——可以说“没有什么神奇的地方”。为了将代码放在某处,大家约定成俗将视图放置在项目(project)或应用程序(app)目录中的名为views.py的文件中

一个简单的视图:

from django.http import HttpResponse
import datetime
 
def current_datetime(request):
    now = datetime.datetime.now()
    html = "<html><body>It is now %s.</body></html>" % now
    return HttpResponse(html)

对于HttpResponse与render的区别:

我个人理解是:render包含HttpResponse的操作,在render对象下边已经封装了HttpResponse的操作,而HttpResponse是直接给页面返回内容没有经过一些文件操作,而render还可以传入HTML文件进行操作。(了解较浅,可能有误)

现在我们来做一个与之前学习的wsgi一样的功能(也就是在浏览器页面显示当前时间):

在urls.py的代码:

from django.contrib import admin
from django.urls import path
from blog import views

urlpatterns = [
    path('admin/', admin.site.urls),
    path('cur_time/',views.cur_time)
]

在views.py的代码:

from django.shortcuts import render,HttpResponse
import datetime

def cur_time(request):

    times = datetime.datetime.now()

    # return HttpResponse('<h1>ok</h1>')
    return render(request,'cur_time.html',{'abc':times})#render是渲染的意思

还得在template里面创建一个HTML文件 ‘cur_time.html’

PS:这里的文件并不用传路径,因为settings内部已经帮我们找到了这个路径。

cur_time.html文件内容如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>

<h1>当前时间:{{ abc }}</h1>

</body>
</html>

之前学wsgi的时侯我们是用!!abc!!而不是两个{{abc}},在django里面我们用第二种

然后在pycharm终端执行:

python manage.py runserver 8080

即可执行。

在浏览器输入 

127.0.0.1:8080/cur_time

效果如图:

猜你喜欢

转载自www.cnblogs.com/cailunduo/p/10337365.html