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中的for 循环
Jun 09 Python
python使用matplotlib绘图时图例显示问题的解决
Apr 27 Python
python不换行之end=与逗号的意思及用途
Nov 21 Python
快速了解Python中的装饰器
Jan 11 Python
CentOS下Python3的安装及创建虚拟环境的方法
Nov 28 Python
Python 给定的经纬度标注在地图上的实现方法
Jul 05 Python
基于python 凸包问题的解决
Apr 16 Python
django 数据库返回queryset实现封装为字典
May 19 Python
django form和field具体方法和属性说明
Jul 09 Python
python rsa-oaep加密的示例代码
Sep 23 Python
python 通过使用Yolact训练数据集
Apr 06 Python
python基础之类方法和静态方法
Oct 24 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
php删除页面记录 同时刷新页面 删除条件用GET方式获得
2012/01/10 PHP
php通过两层过滤获取留言内容的方法
2016/07/11 PHP
PHP数组访问常用方法解析
2020/09/05 PHP
JS类定义原型方法的两种实现的区别评论很多
2007/09/12 Javascript
ajax更新数据后,jquery、jq失效问题
2011/03/16 Javascript
Javascript中自动切换焦点实现代码
2012/12/15 Javascript
Jquery+CSS3实现一款简洁大气带滑动效果的弹出层
2013/05/15 Javascript
javascript轻松实现当鼠标移开时已弹出子菜单自动消失
2013/12/29 Javascript
JS模拟并美化的表单控件完整实例
2015/08/19 Javascript
js+css实现回到顶部按钮(back to top)
2016/03/02 Javascript
基于Node.js的JavaScript项目构建工具gulp的使用教程
2016/05/20 Javascript
checkbox批量选中,获取选中项的值的简单实例
2016/06/28 Javascript
大型JavaScript应用程序架构设计模式
2016/06/29 Javascript
jquery中绑定事件的异同
2017/02/28 Javascript
使用BootStrap实现标签切换原理解析
2017/03/14 Javascript
vue中页面跳转拦截器的实现方法
2017/08/23 Javascript
使用nvm管理不同版本的node与npm的方法
2017/10/31 Javascript
VUE2 前端实现 静态二级省市联动选择select的示例
2018/02/09 Javascript
vue 使用eventBus实现同级组件的通讯
2018/03/02 Javascript
JS实现给数组对象排序的方法分析
2019/06/24 Javascript
JavaScript arguments.callee作用及替换方案详解
2020/09/02 Javascript
python处理PHP数组文本文件实例
2014/09/18 Python
Python中字典(dict)合并的四种方法总结
2017/08/10 Python
python实现ssh及sftp功能(实例代码)
2020/03/16 Python
浅谈anaconda python 版本对应关系
2020/10/07 Python
python爬虫智能翻页批量下载文件的实例详解
2021/02/02 Python
CSS3感应鼠标的背景闪烁和图片缩放动画效果
2014/05/14 HTML / CSS
阿巴庭院:Abba Patio
2019/06/18 全球购物
英国网上超市:Ocado
2020/03/05 全球购物
如何用Lucene索引数据库
2016/02/23 面试题
物理力学求职信
2014/02/18 职场文书
什么是就业协议书
2014/04/17 职场文书
项目经理任命书
2014/06/04 职场文书
学习优秀共产党员先进事迹思想报告
2014/09/17 职场文书
六一儿童节开幕词
2015/01/29 职场文书
基于Redis6.2.6版本部署Redis Cluster集群的问题
2022/04/01 Redis