美文网首页
Python Sublime Text3 -- socket.e

Python Sublime Text3 -- socket.e

作者: lvghua | 来源:发表于2018-03-27 17:04 被阅读0次

    在上篇我们谈到《mac OS Sublime Text3 配置成 Python IDE环境》,也有涉及到《Python Flask RESTful API -- HTTPAuth》,那么我们能不能在Sublime Text3运行Flask HTTPAuth呢,试试看.

    1、在Sublime Text3新增一个.py文件,命名为FlaskHTTPAuth.py,代码如下:

    # coding=UTF-8
    
    from flask import Flask
    #https://github.com/miguelgrinberg/flask-httpauth
    #安装flask-httpauth后,在PyCharm-Preferences-Project-Interpreter-增加flask-httpauth
    from flask_httpauth import HTTPBasicAuth
    
    app = Flask(__name__)
    auth = HTTPBasicAuth()
    
    users = {
        "kingly":"hello",
        "susan":"bye"
    }
    
    @auth.get_password
    def get_pwd(username):
        if username in users:
            return users.get(username)
    
        return None
    
    @app.route('/')
    @auth.login_required
    def index():
        return 'Hello %s!!' % auth.username()
    
    
    if __name__ == '__main__':
        app.run()
    
    

    快捷键 Command + B,运行成功。


    运行结果

    打开终端,测试RESTful API是否能成功调用,测试之前先安装 HTTPie

    pip install HTTPie
    

    按下回车键,安装成功,接着输入:

    http -a kingly:hello http://127.0.0.1:5000
    

    利用HTTPie中的http -a 命令带入API需要的用户名和密码(kingly:hello),访问成功。


    http -a kingly:hello http://127.0.0.1:5000

    果然能运行,喜悦之情溢于言表,高兴之余,在Sublime Text3 再次按下了快捷键,Command +B运行, 报错,图片如下:


    error socket

    看到了报错的关键词:socket.error: [Errno 48] Address already in use,这应该是通信方面的socket端口被占用的问题,应该是第一次运行时5000端口被占用了,还没来得及使用快捷键 Ctrl + C释放,知道原理后,只要找出占用端口的进程,杀死即可,打开终端,输入:

    lsof -i :5000
    

    查看端口占用情况,从下图可以看出Python程序占用5000端口


    3.27.17.36.png

    杀死进程,输入kill以及进程PID 4499,回车键执行:

    kill 4499
    

    返回Sublime Text3,再次Command + B运行程序,成功!

    相关文章

      网友评论

          本文标题:Python Sublime Text3 -- socket.e

          本文链接:https://www.haomeiwen.com/subject/pmyscftx.html