今天把自己搭建的IP池运行了一下,然后想到写一个以网页形式暴露出来的IP形式,然后就用以下代码写出来了这个接口。就出现了错误。代码如下:
# coding:utf-8
# 用于做接口,使其他的程序能够获得这个程序的开发出来的有用的IP
from flask import Flask
import redis
__all__ = ['app']
app = Flask(__name__)
@app.route('/')
def get_proxy():
R =redis.Redis(host='localhost',port=6379,db=2,password="")
return R.lpop('IP')
app.run() # 当你运行这段代码时,在浏览器中输入localhost:5000,就会出现ip
在idle运行报错如下:
Traceback (most recent call last):
File "C:\Users\23263\Desktop\little_proxy\接口\api.py", line 15, in <module>
app.run() # 当你运行这段代码时,在浏览器中输入localhost:5000,就会出现ip
File "C:\Users\23263\AppData\Local\Programs\Python\Python35\lib\site-packages\flask\app.py", line 938, in run
cli.show_server_banner(self.env, self.debug, self.name, False)
File "C:\Users\23263\AppData\Local\Programs\Python\Python35\lib\site-packages\flask\cli.py", line 629, in show_server_banner
click.echo(message)
File "C:\Users\23263\AppData\Local\Programs\Python\Python35\lib\site-packages\click\utils.py", line 218, in echo
file = _default_text_stdout()
File "C:\Users\23263\AppData\Local\Programs\Python\Python35\lib\site-packages\click\_compat.py", line 675, in func
rv = wrapper_func()
File "C:\Users\23263\AppData\Local\Programs\Python\Python35\lib\site-packages\click\_compat.py", line 436, in get_text_stdout
rv = _get_windows_console_stream(sys.stdout, encoding, errors)
File "C:\Users\23263\AppData\Local\Programs\Python\Python35\lib\site-packages\click\_winconsole.py", line 295, in _get_windows_console_stream
func = _stream_factories.get(f.fileno())
io.UnsupportedOperation: fileno
检查代码也没有错,解决办法如下:、
关闭idle,打开cmd命令行,cd定位到py文件的位置,在命令行输入Python api.py,发现可以运行了。
总结:
Python自带的idle运行失败,但是在命令行中可运行py文件。