Foxtable(狐表)用户栏目专家坐堂 → 让狐表再插上python的翅膀


  共有5932人关注过本帖平板打印复制链接

主题:让狐表再插上python的翅膀

帅哥哟,离线,有人找我吗?
shanshuizhujian
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:221 积分:2195 威望:0 精华:0 注册:2011/12/14 9:56:00
让狐表再插上python的翅膀  发帖心情 Post By:2020/3/1 16:39:00 [只看该作者]

最近一直在学习python,学习了一段时间,发现python的确很好玩,至于优点,大家自行百度吧,我就不做这方面的搬运工了。今天就给大家搬一点和fox有关的东西吧。
在fox里调用python 里自己写的方法,返回数据回到fox里,就是给python加上fox的界面,好了废话不多说了,上代码。这些方法来自于互联网,连接在这里,谢谢。http://www.51testing.com/html/53/61753-154560.htmlhttp://www.icodeguru.com/WebServer/Python-Programming-on-Win32/ch05.htm
#################################################
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Date    : 2020-03-01 16:01:56
# @Author  : shanshuizhujian (shanshuizhujian@gmail.com)
# @Link    : ${link}
# @Version : $Id$
#需要先安装pipywin32模块、requests库
import win32com.server.register
import pythoncom
'''
这个类主要是为了让foxtable调用python的方法的,也是为了和python之间进行通信的。
一些在foxtable不擅长的可以放到python里来实施,这样可以发挥fox的界面优势,数据库优势,
发挥python灵活,大量库的优势。

[description]
'''
class MyPyFoxCom:

    _public_methods_=['SplitString','getHTMLText'] #这里一定要把你这个模块的函数名称加进来,否则fox找不到函数。
    _reg_progid_='PythonDemos.PyFoxCom'
#这个地方还是不能直接使用这句话 ,不然没注册一次注册表就多一个id,还是先print出来,然后换上吧。
# 使用"print (pythoncom.CreateGuid())" 得到一个自己的clsid,
    _reg_clsid_=‘刚刚得到的id’

    def SplitString(self, val, item=None):
        import string 
        if item !=None: 
            item=str(item)
        val=str(val)
        return val.split(item)

    def getHTMLText(self,url):
        import requests
        import string
        try:
            url = str(url)
            r= requests.get(url,timeout=5)
            r.raise_for_status()
            r.encoding = r.apparent_encoding
            return str(r.text)
        except:
            return str("链接返回错误:" + url)
if __name__=='__main__':
    print ('Registering COM server...')

    win32com.server.register.UseCommandLine(MyPyFoxCom)

###########################################
    #以上代码,另存为pyfox.py,然后执行。
    #注册完成后开关机都不会影响,修改类之后可以随时调用,不需要再注册。
    #下面语句用来清除com的使用的,打开cmd,根据你文件存放路径,改写之后直接粘贴执行即可。
    
    # python 你自己的路径\pyfox.py --unregister

    #下面是foxtable调用代码,执行完上面代码之后,把下面的代码拷贝到foxtable命令,执行即可看到效果。
    # Dim PythonUtils As object
    # PythonUtils= CreateObject("PythonDemos.PyFoxCom")
    # Dim response As object
    # response = PythonUtils.SplitString("Hello from VB")
    # For Each Item As object In response
    #     Output.show(Item)
    # Next
    # response = PythonUtils.getHTMLText("http://www.baidu.com")
    # output.Show(response)#返回的结果是百度首页的源代码
[此贴子已经被作者于2020/3/1 20:40:51编辑过]

 回到顶部
总数 20 1 2 下一页