Python Django view 两种return的实现方式


Posted in Python onMarch 16, 2020

1.使用render方法

return render(request,'index.html')

返回的页面内容是index.html的内容,但是url不变,还是原网页的url,(比如是login页面的返回方法,跳转后的url还是为login) 一刷新就返回去了

2.使用redirect方法

return redirect(request,'idnex.html')

直接跳转到index.html页面中,url为跳转后的页面url

补充知识:Django的View是如何工作的?

View (视图) 主要根据用户的请求返回数据,用来展示用户可以看到的内容(比如网页,图片),也可以用来处理用户提交的数据,比如保存到数据库中。Django的视图(View)通常和URL路由一起工作的。服务器在收到用户通过浏览器发来的请求后,会根据urls.py里的关系条目,去视图View里查找到与请求对应的处理方法,从而返回给客户端http页面数据。

当用户发来一个请求request时,我们通过HttpResponse打印出Hello, World!

# views.py
from django.http import HttpResponse

def index(request):
 return HttpResponse("Hello, World!")

下面一个新闻博客的例子。/blog/展示所有博客文章列表。/blog/article/<int:id>/展示一篇文章的详细内容。

# blog/urls.py
from django.urls import path

from . import views

urlpatterns = [
 path('blog/', views.index, name='index'),
 path('blog/article/<int:id>/', views.article_detail, name='article_detail'),
]


# blog/views.py
from django.shortcuts import render, get_object_or_404
from .models import Article


# 展示所有文章
def index(request):
 latest_articles = Article.objects.all().order_by('-pub_date')
 return render(request, 'blog/article_list.html', {"latest_articles": latest_articles})


# 展示所有文章
def article_detail(request, id):
 article = get_object_or_404(Article, pk=id)
 return render(request, 'blog/article_detail.html', {"article": article})

模板可以直接调用通过视图传递过来的内容。

# blog/article_list.html
{% block content %}
{% for article in latest_articles %}
  {{ article.title }}
  {{ article.pub_date }}
{% endfor %}
{% endblock %}

# blog/article_detail.html
{% block content %}
{{ article.title }}
{{ article.pub_date }}
{{ article.body }}
{% endblock %}

以上这篇Python Django view 两种return的实现方式就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python 性能提升的几种方法
Jul 15 Python
浅谈python中str字符串和unicode对象字符串的拼接问题
Dec 04 Python
Python控制键盘鼠标pynput的详细用法
Jan 28 Python
详解【python】str与json类型转换
Apr 29 Python
python-opencv获取二值图像轮廓及中心点坐标的代码
Aug 27 Python
pip 安装库比较慢的解决方法(国内镜像)
Oct 06 Python
python 多维高斯分布数据生成方式
Dec 09 Python
tensorflow mnist 数据加载实现并画图效果
Feb 05 Python
Python 实现 T00ls 自动签到脚本代码(邮件+钉钉通知)
Jul 06 Python
Python调用Redis的示例代码
Nov 24 Python
Python-OpenCV实现图像缺陷检测的实例
Jun 11 Python
Python PIL按比例裁剪图片
May 11 Python
Python 统计位数为偶数的数字代码详解
Mar 15 #Python
使用pygame编写Flappy bird小游戏
Mar 14 #Python
Python3.x+pyqtgraph实现数据可视化教程
Mar 14 #Python
浅谈selenium如何应对网页内容需要鼠标滚动加载的问题
Mar 14 #Python
Python实现鼠标自动在屏幕上随机移动功能
Mar 14 #Python
Python 读取WAV音频文件 画频谱的实例
Mar 14 #Python
Python2.7:使用Pyhook模块监听鼠标键盘事件-获取坐标实例
Mar 14 #Python
You might like
支持数组的ADDSLASHES的php函数
2010/02/16 PHP
深入理解PHP内核(一)
2015/11/10 PHP
微信 开发生成带参数的二维码的实例
2016/11/23 PHP
PHP基于XMLWriter操作xml的方法分析
2017/07/17 PHP
PHP如何获取Cookie并实现模拟登录
2020/07/16 PHP
PHP 实现缩略图
2021/03/09 PHP
nodejs win7下安装方法
2012/05/24 NodeJs
javascript面向对象包装类Class封装类库剖析
2013/01/24 Javascript
JavaScript中使用Substring删除字符串最后一个字符
2013/11/03 Javascript
javascript中通过arguments参数伪装方法重载
2014/10/08 Javascript
面向切面编程(AOP)的理解
2015/05/01 Javascript
使用AngularJS创建单页应用的编程指引
2015/06/19 Javascript
学习JavaScript设计模式之单例模式
2016/01/19 Javascript
Knockoutjs 学习系列(二)花式捆绑
2016/06/07 Javascript
VeeValidate在vue项目里表单校验应用案例
2018/05/09 Javascript
vue组件定义,全局、局部组件,配合模板及动态组件功能示例
2019/03/19 Javascript
vue--vuex详解
2019/04/15 Javascript
vue实现商城秒杀倒计时功能
2019/12/12 Javascript
JavaScript实现图片放大预览效果
2020/11/02 Javascript
python获取当前计算机cpu数量的方法
2015/04/18 Python
Python的Flask开发框架简单上手笔记
2015/11/16 Python
scrapy spider的几种爬取方式实例代码
2018/01/25 Python
对Pandas MultiIndex(多重索引)详解
2018/11/16 Python
python 3.6.7实现端口扫描器
2019/09/04 Python
Python虚拟环境库virtualenvwrapper安装及使用
2020/06/17 Python
浅谈移动端网页图片预加载方案
2018/11/05 HTML / CSS
HTML5自定义视频播放器源码
2020/01/06 HTML / CSS
为奢侈时尚带来了慈善元素:Olivela
2018/09/29 全球购物
技能比赛获奖感言
2014/02/14 职场文书
晚归检讨书
2014/02/19 职场文书
标准单位租车协议书
2014/09/23 职场文书
学校班子个人对照检查材料思想汇报
2014/09/27 职场文书
群众路线个人剖析材料
2014/10/07 职场文书
学生检讨书范文
2015/01/27 职场文书
2015年个人思想总结
2015/03/09 职场文书
图神经网络GNN算法
2022/05/11 Python