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牛刀小试密码爆破
Feb 03 Python
wxpython 最小化到托盘与欢迎图片的实现方法
Jun 09 Python
Python多线程编程(五):死锁的形成
Apr 05 Python
Python中格式化format()方法详解
Apr 01 Python
Python实现高斯函数的三维显示方法
Dec 29 Python
Django ORM 常用字段与不常用字段汇总
Aug 09 Python
如何运行带参数的python脚本
Nov 15 Python
使用批处理脚本自动生成并上传NuGet包(操作方法)
Nov 19 Python
Python实现AI自动抠图实例解析
Mar 05 Python
python将YUV420P文件转PNG图片格式的两种方法
Jan 22 Python
python 批量将中文名转换为拼音
Feb 07 Python
python Autopep8实现按PEP8风格自动排版Python代码
Mar 02 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
磨咖啡豆的密诀
2021/03/03 冲泡冲煮
VML绘图板②脚本--VMLgraph.js、XMLtool.js
2006/10/09 PHP
apache mysql php 源码编译使用方法
2012/05/03 PHP
PHP无法访问远程mysql的问题分析及解决
2013/05/16 PHP
php 字符串压缩方法比较示例
2014/01/23 PHP
Yii 2.0如何使用页面缓存方法示例
2017/05/23 PHP
PHP PDOStatement::setAttribute讲解
2019/02/01 PHP
IE和firefox浏览器的event事件兼容性汇总
2009/12/06 Javascript
Jquery 的扩展方法总结
2011/10/01 Javascript
Javascript面向对象设计一 工厂模式
2011/12/20 Javascript
js日期时间补零的小例子
2013/03/05 Javascript
主页面中的两个iframe实现鼠标拖动改变其大小
2013/04/16 Javascript
解决Jquery load()加载GB2312页面时出现乱码的两种方案
2013/09/10 Javascript
jQuery获得IE版本不准确webbrowser的解决方法
2014/02/23 Javascript
JQuery基础语法小结
2015/02/27 Javascript
jquery+ajax实现注册实时验证实例详解
2015/12/08 Javascript
浅谈JavaScript中面向对象的的深拷贝和浅拷贝
2016/08/01 Javascript
jquery DataTable实现前后台动态分页
2017/06/17 jQuery
微信小程序 上传头像的实例详解
2017/10/27 Javascript
js 公式编辑器 - 自定义匹配规则 - 带提示下拉框 - 动态获取光标像素坐标
2018/01/04 Javascript
微信小程序Getuserinfo解决方案图解
2018/08/24 Javascript
Vue中的Props(不可变状态)
2018/09/29 Javascript
深入浅析vue中cross-env的使用
2019/09/12 Javascript
Vue中用JSON实现刷新界面不影响倒计时
2020/10/26 Javascript
js实现碰撞检测
2021/01/29 Javascript
python 矩阵增加一行或一列的实例
2018/04/04 Python
python 数字类型和字符串类型的相互转换实例
2018/07/17 Python
Pandas中Series和DataFrame的索引实现
2019/06/27 Python
使用python把xmind转换成excel测试用例的实现代码
2020/10/12 Python
介绍一下JNDI的基本概念
2013/07/26 面试题
Ruby如何定义一个类
2012/10/08 面试题
机电一体化职业规划书
2014/01/07 职场文书
民事诉讼答辩状范文
2015/05/21 职场文书
回复函范文
2015/07/14 职场文书
OpenCV-Python实现轮廓的特征值
2021/06/09 Python
Oracle 11g数据库使用expdp每周进行数据备份并上传到备份服务器
2022/06/28 Oracle