V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
yeelone
V2EX  ›  问与答

pyqt 如何实现用户认证功能 ?

  •  
  •   yeelone · 2015-06-14 02:37:01 +08:00 · 2291 次点击
    这是一个创建于 3462 天前的主题,其中的信息可能已经有所发展或是发生改变。

    需求:
    我想用pyqt做前端GUI,功能类似浏览器,发起http请求(get,post,put,delete) ,获取数据之后更新UI(备注:我不想用Qwebkit,此时不想写HTML)。

    遇到的麻烦 :
    google出来的资料非常的少,一翻努力之后发现可用QNetworkAccessManager来实现发送 http请求的功能,但是不知道如何带用户认证,看了QT的文档之后也不知道如何去用。
    因为之前一直写WEB,现在在写桌面GUI的时候思维总是照着写WEB的方式去写,有点转不过弯。

    希望:
    有没有现成的pyqt的开源项目 ,功能类似我的需求,因为pyqt的example非常少,我想如果有类似的开源项目来学习就最好了。

    4 条回复    2015-06-14 10:53:13 +08:00
    Sylv
        1
    Sylv  
       2015-06-14 03:52:09 +08:00 via iPhone
    个人愚见:HTTP 请求没必要通过 PyQt 实现吧,用 Python 自带库或第三方库如 requests 来实现,PyQt 就只用来负责实现 GUI,这样不行吗?
    yeelone
        2
    yeelone  
    OP
       2015-06-14 08:53:31 +08:00 via Android
    @Sylv 那请问如何实现异步呢?
    Sylv
        3
    Sylv  
       2015-06-14 10:42:38 +08:00 via iPhone
    @yeelone 用 QThread 再开个线程用来处理网络请求,这样可以吗?
    很久没用 PyQt 了,细节记不清了,之前我有个项目应该是这样实现的。
    yeelone
        4
    yeelone  
    OP
       2015-06-14 10:53:13 +08:00
    @Sylv 我现在用requests-futures 这个库,实验了一下应该是可以了。
    类似代码如下:
    ```
    def handler(self):
    session = FuturesSession()
    self.feture = session.get('http://baidu.com/get', background_callback=self.reply)
    response = self.feture.result()

    def reply(self,sess,resp):
    print(resp.content)
    ```
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5892 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 02:27 · PVG 10:27 · LAX 18:27 · JFK 21:27
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.