12306余票查询(七)——如何让python的代码可以被js引用

12 篇文章 0 订阅
9 篇文章 3 订阅

数据得用python跑出来,然后我又不想自己写个服务器传数据给浏览器,这里就用到了Eel库,https://github.com/ChrisKnott/Eel Github上有非常详细的讲解

import eel
@eel.expose
def getdata(start_station,destination,date):
    data = Get_tickets(start_station,destination,date).tickets_info
    result = ""
    for d in data:
        html = '''<div class = "content">
        <ul class="tickets_info">
            <li class="first_li">%(train_code)s</li>
            <li>%(from_station)s</li>
            <li>%(to_station)s</li>
            <li>%(start_time)s</li>
            <li>%(arrive_time)s</li>
            <li>%(used_time)s</li>
            <li>%(business_seat)s</li>
            <li>%(first_seat)s</li>
            <li>%(second_seat)s</li>
            <li>%(gjrw)s</li>
            <li>%(dw)s</li>
            <li>%(yw)s</li>
            <li>%(rz)s</li>
            <li>%(yz)s</li>
            <li>%(wz)s</li>
            <li>%(qt)s</li>
            <li class="last_li">%(remark)s</li>
        </ul>
        <ul class="price">
                <li class="first_li"></li>
                <li></li>
                <li></li>
                <li></li>
                <li></li>
                <li></li>
                <li>%(business_price)s</li>
                <li>%(first_seat_price)s</li>
                <li>%(second_seat_price)s</li>
                <li>%(gjrw_seat_price)s</li>
                <li>%(dw_seat_price)s</li>
                <li>%(yw_seat_price)s</li>
                <li>%(rz_seat_price)s</li>
                <li>%(yz_seat_price)s</li>
                <li>%(wz_seat_price)s</li>
                <li>%(dw_seat_price)s</li>
                <li class="last_li"></li>
        </ul>
        </div>     '''%d
        result += html
    return result

装饰器修饰的函数就可以在js中引用

<script src="/eel.js"></script>

html页面中还要加一个js文件的引用
引入eel.js才能完成与python的交互
getdata方法,封装了传参,获取数据和生成html代码
返回值为string,内容为html代码,
考虑前后端分离,html代码是不在python中产生的,但是这里为了方便快捷,就把前端代码生产放在后端执行,耦合度很高,单这只是写来复习的小例子,暂时不考虑太多代码复用和封装的问题

if __name__ == '__main__':
    eel.init("F:\Python复习\\12306")
    eel.start("12306.html")

在主函数中,把前端文件夹绝对路径放到eel.init(文件夹路径)函数中,初始化页面内容
eel.start(制定网页文件名)会自动打开指定网页
这里写图片描述
在这里操作页面可以用Eel与后端代码完成交互
在此时,前端页面是可以被修改的,修改后刷新页面跑的就是实时的页面代码
但是如果后端代码要改,就得重启程序测试
这里写图片描述
这就是以网页控制爬虫和网页图形化显示爬虫结果,
至于最后一列丑陋的css,明天再搞

  • 4
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值