Python+前端简单项目:每日一词New Tab

简介: 在网上看到了Google的New Tab插件,想想自己的英语那么差,找个可以学单词的New Tab多好,结果大神们英语都很好,并没有找到,只有一个类似的还是日语,怎么办?既然找不到就自己写一个吧。 开始动手写 先确定一下功能1.

在网上看到了Google的New Tab插件,想想自己的英语那么差,找个可以学单词的New Tab多好,结果大神们英语都很好,并没有找到,只有一个类似的还是日语,怎么办?既然找不到就自己写一个吧。

开始动手写

  • 先确定一下功能
    1.关键需要有一个搜索框
    2.每天更新一个单词,单词可以点进去查看详情
    3.页面背景要找一些高清壁纸
    4.背景随机显示
    5.原来是定义为一个静态页面的,但是单词这个有点问题,所以加了一个小后台,只用来爬单词
  • 搜索框

    <div>
        <input type="text" id="inputId" onkeydown="enter_search()"/>
        <span><a href="" id="linkUrlId" onclick="search()">搜索</a></span>
    </div>
  • 搜索框JS

    // 回车搜索
    function enter_search() {
        let event = window.event;
        if (event.keyCode === 13) {
            console.log(event.keyCode);
            search();
        }
      }
    // 搜索,使用百度的URL拼接出来的
    function search() {
        let msg = document.getElementById('inputId').value;
        if (msg) {
            document.getElementById('linkUrlId').href = "https://www.baidu.com/s?wd=" + msg;
            document.getElementById('linkUrlId').click();
        }
      }
    // 鼠标默认锁定在搜索框中
    (function () {
        document.getElementById('inputId').focus()
    })();
  • 每日单词

    <div>
        <a href="" id="search_word" onclick="search_word()"><div id="word"></div></a>
        <div id="phonetic_symbol_e"></div>
        <div id="phonetic_symbol_u"></div>
        <div id="chinese"></div>
    </div>
  • 每日单词JS

    // 发送请求到后台获取单词
    $.ajax({
        type: "get",
        url: "http://127.0.0.1:5000/",
        async: true,
        dataType: "json",
        success: function (data) {
            $("#word").text(data.word);
            $("#chinese").text(data.chinese);
            $("#phonetic_symbol_e").text(data.phonetic_symbol_e);
            $("#phonetic_symbol_u").text(data.phonetic_symbol_u);
        }
    });
    // 拼接Bing词典的单词详情URL
    function search_word() {
        let word = $("#word").text();
        console.log(word);
        document.getElementById('search_word').href = "https://cn.bing.com/dict/search?q=" + word + "&mkt=zh-cn";
        document.getElementById('search_word').click();
    }
  • 每日单词后台,使用python爬取了Bing词典首页的每日一词

    import json
    import requests
    from lxml import etree
    import xml.etree.ElementTree as ET
    from flask import Flask
    
    app = Flask(__name__)
    CORS(app, supports_credentials=True)
    
    @app.route('/')
    def index():
        url = 'https://cn.bing.com/dict/?mkt=zh-cn'
        response = requests.request("GET", url=url)
        response_html = etree.HTML(response.content)
        # 解析数据,拿到单词
        bing_body_list = response_html.xpath(
            "//div[@class='client_daily_word_content']/div[@class='client_daily_words_bar']//text()")
        # 初始化数据
        word, chinese, phonetic_symbol_e, phonetic_symbol_u = u'hello', u'你好', u"英 [hə'ləʊ]", u"美 [heˈləʊ]"
    
        if len(bing_body_list):
            word = bing_body_list.pop(0)
            chinese = bing_body_list.pop(-1)
            for phonetic_symbol in bing_body_list:
                if u"美[" in word:
                    phonetic_symbol_u = phonetic_symbol
                elif u"英[" in word:
                    phonetic_symbol_e = phonetic_symbol
        data = {
            "word": word,
            "chinese": chinese,
            "phonetic_symbol_e": phonetic_symbol_e,
            "phonetic_symbol_u": phonetic_symbol_u,
            }
        return json.dumps(data)
    
    if __name__ == '__main__':
        app.run(debug=True)
  • 随机背景图片,先去网上找一些高清壁纸

    // 写一个数组
    let arr = ["./1.jpg", "./2.jpg", "./3.png"];
    arr[3] = "./4.jpg";
    // 随机数组内的图片设为背景
    let randomBgIndex = arr[Math.floor((Math.random() * arr.length))];
    document.write('<style>body{background-image:url(' + randomBgIndex + ')}</style>');
  • 进行一些美化
  • 搞定!本项目已经部署了,有兴趣的可以点这里作为参考
  • 效果图
    20190508112032403
  • 源码地址
    https://github.com/wxy148616/NewTab
  • 参考链接:时光不写博客
相关文章
|
1月前
|
资源调度 前端开发 JavaScript
构建高效前端项目:现代包管理器与模块化的深度解析
【2月更文挑战第21天】 在当今快速演变的前端开发领域,高效的项目管理和代码组织已成为成功交付复杂Web应用的关键。本文将深入探讨现代前端包管理器如npm, yarn和pnpm的工作原理,以及它们如何与模块化编程实践(例如CommonJS、ES6模块)协同工作以优化开发流程。我们将剖析这些工具的内部机制,了解它们如何解决依赖冲突,提高安装速度,并保证项目的健壮性。同时,本文还将介绍模块化编程的最佳实践,包括代码拆分、重用和版本控制,帮助开发者构建可维护且性能卓越的前端项目。
|
1月前
|
缓存 前端开发 JavaScript
Vite 构建流程大揭秘:快速构建前端项目的秘密武器
Vite 构建流程大揭秘:快速构建前端项目的秘密武器
|
1月前
|
前端开发 JavaScript jenkins
构建高效前端项目:从模块化到自动化
【2月更文挑战第13天】 随着Web技术的不断进步,前端项目的复杂性日益增加。为了确保可维护性和性能,前端工程师必须采用模块化和自动化的策略来优化开发流程。本文将探讨如何使用现代前端工具和最佳实践来构建一个高效的前端项目架构,包括模块打包、代码分割和持续集成等方面。
|
1月前
|
机器学习/深度学习 人工智能 开发工具
人工智能项目的python版本管理工具DVC
dvc即data version control, 是一种针对人工智能项目(机器学习或者深度学习)的数据版本管理工具。DVC的操作和GIT类似,可以认为为GIT的二次开发封装。结合GIT,DVC可以有效的管理人工智能项目的整个流程,包括代码,数据,训练配置,模型【2月更文挑战第12天】
51 1
|
2月前
|
缓存 前端开发 测试技术
(译)Python 官方团队在打包项目中踩过的坑
(译)Python 官方团队在打包项目中踩过的坑
31 2
|
2月前
|
缓存 JavaScript 前端开发
IDEA启动VUE前端项目
IDEA启动VUE前端项目操作流程
|
16天前
|
前端开发 应用服务中间件 nginx
Nginx配置详解Docker部署Nginx使用Nginx部署vue前端项目
Nginx配置详解Docker部署Nginx使用Nginx部署vue前端项目
78 0
|
7天前
|
JavaScript 前端开发 API
游戏开发入门:Python后端与Vue前端的协同工作方式
【4月更文挑战第11天】使用Python后端(Flask或Django)和Vue.js前端开发游戏变得流行,能提高开发效率和可维护性。本文指导如何构建这样的项目,包括设置环境、创建虚拟环境、搭建后端API及前端Vue组件,强调前后端协作和API接口的重要性。这种架构促进团队合作,提升代码质量和游戏体验。
|
1月前
|
前端开发 JavaScript 测试技术
构建高效前端项目:模块化与组件化策略
【2月更文挑战第25天】 在现代网页开发中,随着用户对于网页性能和交互体验的期待不断提升,前端项目的复杂性也随之增加。为了应对这种复杂性并提高开发效率,本文将探讨模块化与组件化在前端项目中的应用策略。通过分析这两种方法的优势与适用场景,我们将揭示如何利用它们来优化项目结构,提升代码复用率,以及加快开发流程。
26 4
|
1月前
|
Python
Python中__new__和__init__的区别与联系
Python中__new__和__init__的区别与联系
19 0

热门文章

最新文章