分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > IT知识

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

发布时间:2023-09-06 02:32责任编辑:蔡小小关键词:urldjango

我们先了解一下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 HttpResponseimport 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 adminfrom django.urls import pathfrom blog import viewsurlpatterns = [ ???path(‘admin/‘, admin.site.urls), ???path(‘cur_time/‘,views.cur_time)]

在views.py的代码:

from django.shortcuts import render,HttpResponseimport datetimedef 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

效果如图:

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

原文地址:https://www.cnblogs.com/cailunduo/p/10337365.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved