详细教---用Django封装写好的模型

        本次我们要用自己写好的热销词条爬虫代码来演示如何用Django把我们写好的模型封装。

第一步:代码准备

热搜词条搜集代码:

import requests
from lxml import etreeurl = "https://tophub.today/n/KqndgxeLl9"
headers={'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'
}res = requests.get(url = url,headers=headers,
)# print(res.status_code)html = etree.HTML(res.text)
trs=html.xpath('/html/body/div[1]/div[2]/div[2]/div[1]/div[2]/div/div[1]/table/tbody/tr')def getfirsttext(list):try:return list[0].strip()except:return ""# file=open("微博热搜top50.txt",mode="w",encoding="utf-8")
for tr in trs:id = getfirsttext(tr.xpath('./td[1]/text()'))title=getfirsttext(tr.xpath('./td[2]/a/text()'))play=getfirsttext(tr.xpath('./td[3]/text()'))url=getfirsttext(tr.xpath('./td[2]/a/@href'))print(id,title,play,url)
#     file.write(str(id)+","+title+","+str(play))
# file.close()

第二步:创建Django项目

在你选择存放项目的文件夹中,在命令行终端中执行以下命令来创建一个新的 Django 项目,名为myproject:

django-admin startproject myproject

第三步:配置项目

        1、创建一个应用程序 myapp。

python manage.py startapp myapp

        这将在项目目录下创建一个名为 myapp 的新应用程序,其中包含应用程序的基本目录结构。

        

        2、接下来,创建一个 Django 视图,用来处理请求并将数据呈现在网页上。在你的应用程序中的 views.py 文件中编写如下代码:

        

from django.shortcuts import render
import requests
from lxml import etreedef show_hot_topics(request):url = "https://tophub.today/n/KqndgxeLl9"headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'}res = requests.get(url=url, headers=headers)html = etree.HTML(res.text)trs = html.xpath('/html/body/div[1]/div[2]/div[2]/div[1]/div[2]/div/div[1]/table/tbody/tr')hot_topics = []for tr in trs:id = getfirsttext(tr.xpath('./td[1]/text()'))title = getfirsttext(tr.xpath('./td[2]/a/text()'))play = getfirsttext(tr.xpath('./td[3]/text()'))url = getfirsttext(tr.xpath('./td[2]/a/@href'))hot_topics.append({'id': id, 'title': title, 'play': play, 'url': url})return render(request, 'hot_topics.html', {'hot_topics': hot_topics})def getfirsttext(list):try:return list[0].strip()except:return ""

        3、创建一个模板文件,用来呈现数据。在你的应用程序中创建一个名为 templates 的文件夹,并在其中创建一个名为 hot_topics.html 的文件

     

<!-- 在 myapp/templates/hot_topics.html 文件中 -->
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>热门话题</title>
</head>
<body><h1>热门话题</h1><ul>{% for topic in hot_topics %}<li><a href="{{ topic.url }}">{{ topic.title }}</a> - 播放量: {{ topic.play }}</li>{% endfor %}</ul>
</body>
</html>

        4、配置 URL 路由,使得当用户访问特定的 URL 时能够触发 show_hot_topics 视图。在你的应用程序中的 urls.py 文件中编写如下代码:

       

from django.urls import path
from .views import show_hot_topicsurlpatterns = [path('hot-topics/', show_hot_topics, name='hot_topics'),
]

        5、在myproject下的setting.py,设置模板路径

# settings.pyTEMPLATES = [{...'DIRS': [BASE_DIR / 'myapp' / 'templates'], # 设置模板文件路径...}
]

        6、在myproject下的urls.py,添加URL配置

        path('api/', include('myapp.urls')),            myapp.urls就是指自己的模块文件

'api/'的话,需要http://127.0.0.1:8000/api/hot-topics/    这样去访问。

如果‘’的话,则直接http://127.0.0.1:8000/hot-topics/

# myproject/urls.pyfrom django.urls import path, include
from django.contrib import adminurlpatterns = [path('admin/', admin.site.urls),path('api/', include('myapp.urls')),  # 包含应用程序的 URL 配置
]

第四步:启动开发服务器

进入刚刚创建的 myproject 目录,并执行以下命令以启动开发服务器:

cd myproject
python manage.py runserver

输入网址http://127.0.0.1:8000/api/hot-topics/

注意,这个url格式有加密,所以访问不了很正常

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/756347.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

HarmonyOS NEXT应用开发之搜索页一镜到底案例

介绍 本示例介绍使用bindContentCover、transition、animateTo实现一镜到底转场动画&#xff0c;常用于首页搜索框点击进入搜索页场景。 效果图预览 使用说明 点击首页搜索框跳转到搜索页面显式一镜到底转场动画 实现思路 通过点击首页搜索框改变bindContentCover全屏模态…

企业专业化管理金字塔:技能进阶与案例分析

在纷繁复杂的企业管理领域中&#xff0c;一套行之有效的管理技能体系对于企业的稳健发展至关重要。本文将深入探讨企业专业化管理金字塔的五个层次&#xff1a;基本的管理技能、业务操作管理技能、组织管理技能、组织开发技能以及管理转变技能&#xff0c;并结合实际案例&#…

Linux 文件系统:C语言接口、系统接口

目录 一、文件接口 二、感性理解Linux系统下“一切皆文件” 三、C语言文件接口 1、fopen 2、当前路径 3、fwrite、fprintf、fputs 4、fgets 模拟实现cat命令 5、fscanf 五、系统接口 1、open系统调用 2、write系统调用 例&#xff1a;O_WRONLY 例&#xff1a;O_WR…

类和对象-2

文章目录 默认成员函数构造函数默认构造函数析构函数不同生命周期的构造、析构函数的执行顺序 默认成员函数 在c中&#xff0c;每个类里面都有六个默认成员函数。即便这个类什么都没有&#xff0c;也就是空类&#xff0c;也会有这六个成员函数。这些函数的存在极大的简化了代码…

洛谷_P5143 攀爬者_python写法

P5143 攀爬者 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 知识点&#xff1a; Python lambda&#xff08;匿名函数&#xff09; | 菜鸟教程 (runoob.com) import mathn int(input()) data [] for i in range(n):l list(map(int,input().split()))data.append(l)data.so…

网络简略总结

目录 一、三次握手 四次挥手 1、三次握手:为了建立长链接进行交互即建立一个会话,使用http/https协议 2、四次挥手是一个断开连接释放服务器资源的过程 3、如果已经建立了连接,但是客户端突然出现故障了怎么办? 4、谁可以中断连接?客户端还是服务端还是都可以? 5、…

投资者必读:如何利用龙虎榜数据捕捉市场热点

1.什么是龙虎榜 股票龙虎榜是指每个交易日证券交易所公布的关于股市交易活动的排行榜。龙虎榜主要展示了当日买卖最活跃的股票、买卖双方的机构或个人&#xff0c;以及他们的买卖金额和数量。这些数据可以帮助投资者了解市场的热点股票、资金流向和市场情绪。 通常&#xff0c…

《量子十年》报告更新!IBM精研量子计算,助力行业优化转型

近日&#xff0c;IBM商业价值研究院&#xff08;IBM Institute for Business Value&#xff0c;简称IBV&#xff09;精心出版了一本引人入胜的报告&#xff0c;《量子十年》第四版。这不仅是一本值得一读的书籍&#xff0c;更是对当前行业发展状况的全面总结和重要补充。 这部由…

Maven项目如何导入依赖包

一、导入依赖包 导入mysql依赖包 第一步&#xff1a;登录Maven官网 Maven官网&#xff1a;https://mvnrepository.com/search?qmysql 第二步&#xff1a;点击MySql Connector Java 第三步&#xff1a;点击任意一个版本 第四步&#xff1a;将以下内容复制到pom.xml中 导入j…

概率论基础概念和在AI中的应用

基本概念 概率论是数学的一个分支&#xff0c;它专注于分析和理解随机现象。通过概率论&#xff0c;我们可以量化不确定性&#xff0c;预测事件发生的可能性&#xff0c;并对复杂系统进行建模和分析。以下是一些概率论的基本概念和原理&#xff1a; 概率的定义 经典定义&…

随笔-生老病死

周末两天也没有出门&#xff0c;帮着一个朋友做了些图&#xff08;就这两天忙不过来&#xff09;&#xff0c;挣了点外快&#xff08;700&#xff09;&#xff0c;累得腰酸、眼花、脖子疼。 媳妇带着小孩出去玩&#xff0c;中间发了个视频&#xff0c;是小孩进了一个围棋培训班…

腾讯云k8s容器服务

1、新建一个集群 这个网址&#xff1a; 登录登录 - 腾讯云 2、选择第一个 3、名字随便起一个&#xff0c;然后基本默认就行 4、 组件配置直接跳过&#xff0c;信息确认&#xff0c;等待集群初始化&#xff0c;等10分钟左右&#xff08;容器服务需要充点钱才行&#xff09; 5…

【考研数学】武忠祥全年各阶段搭配用书汇总

如果选武忠祥&#xff0c;讲义方面选择基础篇和辅导讲义即可。分别在基础阶段和强化阶段使用。 此外复习全书不用买&#xff08;无论是基础篇还是提高篇都不用&#xff09;你以后可能会看到它的各种推广&#xff0c;不要轻信&#xff0c;有讲义的情况下全书很难利用得上。 武…

MATLAB学习笔记(二)PDE求解偏微分方程组

一、利用PDE求解偏微分方程组 初值为&#xff1a; 针对上述方程组&#xff0c;利用matlab自带工具箱和函数PDE进行求解。 以下是matlab中对工具箱中pdepe函数的解释。 二、matlab编程 在matlab中编程&#xff0c;利用PDE函数求解以上偏微分方程。 clc; clear; syms y global …

面试六分钟,难题显真章

职场&#xff0c;这个充满机遇与挑战的舞台&#xff0c;总会在不经意间上演着意想不到的转折。我从一家小公司转投到另一家&#xff0c;原本期待着新的工作环境和更多的发展机会&#xff0c;然而现实却给了我一个不小的打击。 新公司的加班文化&#xff0c;如同一个巨大的漩涡…

使用Vuex构建网络打靶成绩管理系统及其测试页面平台思路

使用Vuex构建网络打靶成绩管理系统及其测试页面平台 一、引言 在现代Web开发中&#xff0c;前端框架和状态管理库已经成为构建复杂应用的关键工具。Vue.js作为一个轻量级且易于上手的前端框架&#xff0c;结合Vuex这个专门为Vue.js设计的状态管理库&#xff0c;可以让我们更加…

es 集群安全认证

参考文档&#xff1a;Configure security for the Elastic Stack | Elasticsearch Guide [7.17] | Elastic ES敏感信息泄露的原因 Elasticsearch在默认安装后&#xff0c;不提供任何形式的安全防护不合理的配置导致公网可以访问ES集群。比如在elasticsearch.yml文件中,server…

Centos虚拟机忘记密码;重置虚机密码

虚拟机是一个好用的工具&#xff0c;在本地搭建的虚拟机可以给我们提供测试&#xff0c;但时间长了也会忘记密码&#xff1b;因此这里以centos系统的虚机为例&#xff0c;提供一个重置虚机密码的方法 1.在开机页面按“E”进入编辑模式 进入后长这样&#xff1a; 2.找到ro cras…

设计模式学习笔记 - 设计模式与范式 - 创建型:1.单例模式(上):为什么说支持懒加载的双重校验不必饿汉式更优?

今天开始正式学习设计模式。经典的设计模式有 23 种。其中&#xff0c;常用的并不是很多&#xff0c;可能一半都不到。作为程序员&#xff0c;最熟悉的设计模式&#xff0c;肯定包含单例模式。 本次单例模式的讲解&#xff0c;希望你搞清楚下面这样几个问题。&#xff08;第一…

氮化镓特性简述

氮化镓 了解和记录一下氮化镓材料的特性。 结构 使用pymatgen和Materials Project中的材料数据绘制能带图。其中mp-804(1.73eV)如下所示&#xff1a; 以及mp-830(1.57eV)如下所示&#xff1a; python代码如下 # from pymatgen.ext.matproj import MPRester from mp_api.…