1 前记

这次记录的这些东西,主要是自己在搭建个人网站的时候遇到的一些问题记录,不算严格意义上的教程和使用说明。按照目前自己的web水平,去写这方面的教程无疑是误人子弟。因为自己虽然做程序员很多年,但是一直偏重于底层操作系统,驱动及算法的研究。web一直没有怎么玩过,直到最近自己有项目需要了,才自己摸索起来。写这个的目的有两个,一个是自己做个积累,另一个就是为像同样我这样类型的人遇到问题时候,有个参考的地方。有问题的地方还请各位专家指出。共同学习和成长。等到把web做的比较好的时候,使用django写出来一个像样的网站时候,再打算系统性的写一个django方面的专题。

2 基本流程

在跟着网上某大牛的教程学习网站制作的时候,遇到了要从主页跳转到不同html页面的问题。笔者认为,这位大牛写的灰常不错,值得拜读,这里是他的文章链接:HelloDjango - Django博客教程(第二版)_追梦人物的博客 有兴趣的朋友可以进去看一下,写的非常有品味。他把这个问题留给了读者,正好借此契机,研究一下这个方向吧。
通过查阅资料和反复练习,发现在django中不同页面的跳转一般有这几步骤:
  第一步:新建html(eg:login.html),并放置如下路径:
project/templates/ 下面

  第二步:urls.py配置login.html路径

urlpatterns = [
path(‘login/’,views.login),#添加index/路径配置
]

  第三步:views.py定义函数:

def login(request):
return render(request,‘login.html’)

这个是一个基本的流程,也是jdango常用的流程。 jdango一般是通过url链接到不同的html的,这个就是点击login的时候,会链接到views.login
views.login的定义如第三步所示:这里的login.html对应的就是template下面的login.html

3 基本例子

a APP的urls.py配置如下:

 from django.urls import path
from . import views urlpatterns = [
path('', views.hello),
path('login/', views.login, name='login'), # 这里设置name,为了在模板文件中,写name,就能找到这个路由
path('book/', views.book, name='book'),
path('movie/', views.movie, name='movie'),
path('book/detail/<book_id>/<catgray>/', views.book_detail, name='detail'),]

b APP的views.py文件配置如下:

 from distutils.command import register

 from django.shortcuts import render, reverse, redirect
from django.http import HttpResponse def hello(request):
context = {}
context['hello'] = 'Hello World!'
return render(request, 'hello.html', context) def login(request):
return render(request, 'login.html', {'articles': 18}) def book(request):
return HttpResponse("this is caoyin read pages") def movie(request):
return render(request, 'index.html', {'articles': 18}) def book_detail(request, book_id, catgray):
text = '文章详情页,该文章ID是:%s,分类是:%s' % (book_id, catgray)
return HttpResponse(text)

c hello.html的文件配置如下:

 <!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body> <ul>
<li><a href="/">首页</a></li>
<li><a href="{% url 'login' %}?next=asd/ ">登录</a></li>
<li><a href="{% url 'book' %}">读书</a></li>
<li><a href="{% url 'movie' %}">电影</a></li>
<li><a href="{% url 'detail' book_id='1' catgray=2 %}">这个是dylan的第一个example</a></li>
</ul> </body>

d index.html 是在带你电影后被跳转过去的,源码如下:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>权利的游戏</title>
</head>
<body>
<h1>Hello World!</h1>
<p>caoyin 的 django 测试。</p>
{% block mainbody %}
<p>original</p>
{% endblock %}
</body>
</html>

4 源码

整个能运行的源码下载请到我github上地址:GitHub - DyLanCao/django_example: my_diango_example
回退到提交:commit 7ec65933d3e1e40b513e3bd779f57264b00442fa 即可

5 备忘

 1 参考文档:https://www.zmrenwu.com/courses/hellodjango-blog-tutorial/

Django跳转到不同的页面的方法和实例–使用Django建立你的第一个网站的更多相关文章

  1. PHP页面跳转到另一个页面的方法

    用HTTP头信息重定向到另外一个页面的方法如下: <? if (isset($url)) { Header("HTTP/1.1 303 See Other"); Header ...

  2. (实用篇)PHP页面跳转到另一个页面的方法总结

    一.用HTTP头信息  也就是用PHP的header函数.PHP里的header函数的作用就是向浏览器发出由HTTP协议规定的本来应该通过WEB服务器的控制指令,例如声明返回信息的类型("C ...

  3. H5页面中判断是安卓手机还是ios手机的方法;APP页面中嵌套的H5跳转到APP其他页面的方法。

    (一).在H5页面中,可以直接利用如下的方法来进行判断是安卓还是ios. var isAndroid = u.indexOf('Android') > -1 || u.indexOf('Linu ...

  4. jsp中点击一个图片跳转到另一个页面的方法

    1.这是jsp页面中的关于图片的那段代码 <img src="images/tj1.png " id="tj1"></img> 2.跳转 ...

  5. jfinal取消默认跳转到view.jsp页面的方法

    今天为了在一个列表中添加一个删除的方法,直接在方法里面谢了一个dao.del();方法,但是调用的时候却出现404错误. 然后就写了一句下面的代码 redirect("/api/listMe ...

  6. ThinkCMF的跳转303 404等页面的方法

    1. 控制器方法: return $this->redirect('http://www.thinkcmf.cmf',[],301); 或者助手函数: return redirect('http ...

  7. 【转】使用URL SCHEME启动天猫客户端并跳转到某个商品页面的方法

    在项目中遇到了这样一个需求:让用户在手机应用中,点击一个天猫的商品链接(知道商品在PC浏览器里的地址),直接启动天猫的客户端并显示这个商品.以前曾经实现过类似的功能,不过那次是淘宝的商品,天猫和淘宝的 ...

  8. 单击gridview中的选择按钮跳转到另一个页面的方法

    原文发布时间为:2008-07-24 -- 来源于本人的百度文章 [由搬家工具导入] 单击gridview中的选择按钮跳转到另一个页面的方法: 在gridview的事件中双击 SelectedInde ...

  9. Django+Nginx概念安装和使用–使用Django建立你的第一个网站

    一 前记 最近在使用Django倒腾属于自己的网站,由于以前没有接触过多少这类信息,所以,很多东西都是从零开始学习的.在参考网上的资料时候,发现很多对这方面记录的,很多人都写的不是很清楚,也许我这个新 ...

随机推荐

  1. 高速开车换底盘记:Windows 与 Linux 部署都抗住了,但修车任务艰巨

    抱歉,又是一篇流水账,在排查问题的焦头烂额中写博客的确是一个挑战,望大家见谅. 今天园友溪源More发了一篇博文博客园翻车启示录,而翻车之后的最新进展是——昨天下午我们又把 .net core 引擎的 ...

  2. AutoCAD .NET: 遍历模型空间

    原文:http://spiderinnet1.typepad.com/blog/2012/06/autocad-net-iterate-through-model-space.html https:/ ...

  3. 解决问题:安装Ubuntu时遇到nouveau sched_error问题

    当我们在为有独立显卡gpu的电脑安装Ubuntu系统时,有可能会遇到nouveau sched_error问题. 方法一:安装系统时,开机出现dell图标时长按F12进入启动项选择界面, 然后选择UE ...

  4. Hive 系列(六)—— Hive 视图和索引

    一.视图 1.1 简介 Hive 中的视图和 RDBMS 中视图的概念一致,都是一组数据的逻辑表示,本质上就是一条 SELECT 语句的结果集.视图是纯粹的逻辑对象,没有关联的存储 (Hive 3.0 ...

  5. 新手学习selenium路线图(老司机亲手绘制)

    前言: 最近群里有不少小白,想入手selenium,但是一直没找到学习路线,还没入门就迷路了,于是小编亲手绘制了一幅学习路线图.希望能帮助小白快速入门,帮助已经入门的,尽快提升! 学习selenium ...

  6. python+unittest框架第四天unittest之批量执行案例

    今天开始批量执行用例~,场景是这样的: 工作中我们可能有多个模块文件(.py)这些文件根据不同的业务类型或功能,测试案例分布在不同的模块文件下.前面的小示例中,我们的测试用例都是在一个文件中,直接运行 ...

  7. 以太坊智能合约[ERC20]发币记录

    以太坊被称为区块链2.0,就是因为以太坊在应用层提供了虚拟机,使得开发者可以基于它自定义逻辑,通常被称为智能合约,合约中的公共接口可以作为区块链中的普通交易执行.本文就智能合约发代币流程作一完整介绍( ...

  8. Scratch 3下载,最新版Scratch下载,macOS、Windows版

    下载地址:https://scratch.mit.edu/download 废话不多说,先上下载地址! 之前小弟学习Scratch,用的2.0发现诸多BUG,到度娘想下最新版却没有发现一篇比较正经的文 ...

  9. SpringBoot_@valid_参数校验

    SpringBoot @valid 参数校验 空检查 @Null 验证对象是否为null @NotNull 验证对象是否不为null, 无法查检长度为0的字符串 @NotBlank 检查约束字符串是不 ...

  10. React之react-redux

    react-redux相关概念及设计思想介绍 1.react-redux 将所有组件分为两大类 UI组件(负责UI的呈现) 和 容器组件(负责管理数据和逻辑). 2.UI组件特点 只负责UI的呈现,不 ...