一、搜索页面跳转

在 urls.py 中添加一个 user 路径:

from django.urls import path
from . import viewsurlpatterns = [path('', views.home, name="home"),path('user/', views.user, name="user"),
]

在 views.py 中添加一个 user 方法:

def user(request):return render(request,'user.html',{})

再在 templates 创建 user.html:

{% extends 'base.html' %}{% block content %}<h1>Hello User!</h1>{% endblock %}

然后启动 Django 服务,访问 http://127.0.0.1:8000/user/ 可以看到如下页面:

在 base.html 中修改如下代码:

<form class="form-inline my-2 my-lg-0" method="POST" action="{% url 'user' %}">

然后在搜索框内搜索一个用户名,发现:

因此需要设置 CSRF,在上面那行代码下面添加一行代码:

{% csrf_token %}

在 views.py 中修改 user 方法:

def user(request):user = request.POST['user']return render(request,'user.html',{'user':user})

再在 base.html 中在之前写的 csrf 下面修改 input 这行代码如下:

<input class="form-control mr-sm-2" name="user" type="search" placeholder="Search" aria-label="Search">

再在 user.html 中修改:

{% extends 'base.html' %}{% block content %}<h1>Hello {{user}}!</h1>{% endblock %}

在页面中的搜索框输入一个用户名,可以看到如下页面:

二、获取搜索数据

修改 base.html 部分代码:

<a class="navbar-brand" href="{% url 'home' %}">Wonz</a><a class="nav-link" href="{% url 'user' %}">查询</a>

在 views.py 中修改 user 方法:

def user(request):if request.method == 'POST':user = request.POST['user']user_request = requests.get("https://api.github.com/users/"+user)username = json.loads(user_request.content)return render(request,'user.html',{'user':user, 'username':username})else:notfound = "请在搜索框中输入您需要查询的用户..."return render(request,'user.html',{'notfound':notfound})

在 user.html 中修改代码:

{% extends 'base.html' %}{% block content %}{% if notfound %}<h2>{{notfound}}</h2>{% else %}<h1>{{username}}</h1>{% endif %}{% endblock %}

在页面中的搜索框输入一个用户名,可以看到如下页面,表示用户信息都获取到了:

三、显示所有数据

修改 user.html 代码,也做成卡片格式进行展示:

{% extends 'base.html' %}{% block content %}{% if notfound %}<h2>{{notfound}}</h2>{% else %}<div class="card" style="width: 18rem;"><img src="{{username.avatar_url}}" class="card-img-top" alt="Card image cap"><div class="card-body"><h5 class="card-title">{{username.name}}</h5><p class="card-text">location: {{username.location}}</p><p class="card-text">public_repos: {{username.public_repos}}</p><p class="card-text">public_gists: {{username.public_gists}}</p><p class="card-text">followers: {{username.followers}}</p><p class="card-text">following: {{username.following}}</p><p class="card-text">created_at: {{username.created_at}}</p><p class="card-text">updated_at: {{username.updated_at}}</p></div></div>{% endif %}{% endblock %}

在Bootstrap4巨幕复制示例代码,拷贝到 home.html 中,并进行相应修改:

<div class="jumbotron jumbotron-fluid"><div class="container"><h1 class="display-4">用 Django 搭一个 GitHub 用户展示网站</h1><p class="lead">快速入门 Django</p></div></div>

最终成果网站主页展示如下:

搜索用户展示如下:

四、代码地址

GitHub​github.com

五、参考教程

Django小白入门到实战教程(2020) P13-P15​www.bilibili.com

django 跳转其他网站_Django 实战 | 搭一个 GitHub 用户展示网站 04相关推荐

  1. 一个div 上下两行_Django 实战 | 搭一个 GitHub 用户展示网站 02

    一.创建公共 HTML 模板 在 templates 文件里面新建一个 base.html,再到Bootstrap4中文文档找到 最基本的模板,拷贝代码到 base.html,在 home.html ...

  2. 【网站开发】搭建一个属于自己的网站

    概述 搭建一个属于自己的网站 1.购买域名 主机屋http://www.zhujiwu.com/ 购买的域名:TechShare.xyz 2.购买虚拟主机(空间) http://www.zhujiwu ...

  3. python 表情包制作库_Django+PIL 做一个表情包生成网站

    ZERO 前言 最近看到一个系列表情包火了起来,无聊之下想起入门Django时没什么好玩项目的种种不利,就写了这么一篇菜菜的文章,也算是一个简单的入门教程吧 ONE 什么是Django Django ...

  4. 【django轻量级框架】一个Github用户检索信息网站(解析和代码)

    文章目录 1 预览 2 步骤详解 3 代码 1 预览 2 步骤详解 创建一个文件夹 django-admin startproject myweb 使用该命令创建一个项目. cd myweb pyth ...

  5. 如何搭建一个打印荣誉证书的网站_如何搭建一个免费的作品集网站

    Part1. 如何纯免费 自己Coding+免服务器+免费域名. Part2. 怎么实现 Github Pages提供了完全免费的网站生成,包括给你一个免费域名.只需要将自己的网站代码传到github ...

  6. 【网站】如何做一个自己的视频网站

    很喜欢一个小姐姐的影视作品,但是网上资源少的可怜,所以想去做一个视频网站,满足大家的观看需求.趁着天气凉快,开始行动! 1.前端 网上查到很多开源的视频插件,最后我用到videojs这一款开源的视频播 ...

  7. Web网站模板-响应式个人企业照片墙展示网站模板(HTML+CSS+JavaScript)

    主页:搞前端的半夏 简介:前端领域优质创作者.扫码或搜索添加文末公众号「搞前端的半夏」:

  8. 《网站分析实战--如何以数据驱动决策,提升网站价值》学习笔记

    网站分析实战--如何以数据驱动决策,提升网站价值 一.网站分析的目的及流程 1.1 网站分析的目标 1.2 如何进行网站分析 1.2.1 流量分析 1.2.2 内容分析 1.2.3 转化分析(漏斗分析 ...

  9. 怎么用php做一个新闻网站,0067 如何编程开发一个新闻发布功能网站

    上一节课完成了一个学生分数信息管理网页的全部功能,并初步学习了如何使用PHP编程语言调用MySQL数据库实现数据的动态管理. 这节课来学习编写开发一个完整的网站,包含后台数据管理功能和前台网站的展示功 ...

最新文章

  1. 人类虐待机器人却遭反杀,这段人造视频在网上爆红,网友:心疼机器人
  2. Python中使用requests和parsel爬取喜马拉雅电台音频
  3. mysql中in的用法
  4. 网易资深Java架构师:java方法的定义和使用
  5. LeetCode 257. 二叉树的所有路径(DFS)
  6. OpenCV3学习(11.5) FAST特征检测器FastFeatureDetector
  7. oracle的redo和undo,Oracle的redo 和undo的區別
  8. css3 HTML5 效果
  9. HTML5离线存储 初探
  10. Python使用xpath爬取51job
  11. 计算机中用于描述音乐乐曲并,计算机中用于描述音乐乐曲并由声卡合成出音乐来的语言(规范)为。...
  12. C# 调用讯飞实时语音转写
  13. python中rename函数_Python3 os.rename() 方法
  14. 2020年度计划 - 本立道生
  15. OTN / SONET / SDH
  16. swoole 点对点发送消息推送
  17. 解决安卓刷新recyclerView时导致itemDecoration分栏标题绘制错乱(重叠和隔空现象)
  18. 算法 - 递归实现汉诺塔(The Tower of Hanoi)
  19. 服务器的虚拟机网速如何分配,管理ESXi主机网络与虚拟机网络
  20. 轻量级网络Ghostnet(GhostConv(幻影卷积)、Ghost BottleNeck)详解

热门文章

  1. 贪心算法求解TSP问题(python)
  2. android sdk 64 linux下载,64位Linux机器上的Android SDK
  3. 触发更新机制_王者荣耀1.14更新:11名英雄调整,韩信加强,鲁班大师重做
  4. nightwatch系列教程03——开发者指南:运行你的测试脚本
  5. 效率源希捷硬盘远程维修案例-K9盘卡死引起的F级处理
  6. Zend Framework学习之Zend_Config
  7. 探索流程的奥秘之三, 如何梳理业务流程
  8. 用数据来证明累计充值赠送活动
  9. silverlight-Canvas中1像素的线变成了2像素
  10. Livejourmal是什么