彻底解决Flask报错OSError[WinError 10013]以一种访问权限不允许的方式做了一个访问套接字的尝试

彻底解决Flask报错OSError:[WinError 10013]以一种访问权限不允许的方式做了一个访问套接字的尝试

前言

这个报错在大家做Flask开发的过程中想必是最经常出现的一个问题,主要原因是Flask默认启用的是5000端口,而5000端口经常会被其他进程占用,造成端口冲突,Flask就会报错OSError:[WinError 10013]以一种访问权限不允许的方式做了一个访问套接字的尝试,如下图所示:

在这里插入图片描述

那么解决这个问题就有两个方式,第一种是强制关闭其他占用5000端口的进程,或者占用你设置好的端口的进程,这种方式虽然比较方便,但是可以说是一次性的,你重启电脑之后,这些冲突的端口还是会产生冲突,依旧报错。第二种方式就是一劳永逸了,换个没有进程在使用的端口。下面把这两种方式都介绍一下,兄弟们按需使用。

一、强制关闭其他占用端口的进程

首先win+r打开运行,输入cmd打开命令提示符,输入以下内容,用于查看目前占用5000端口的进程有哪些:

netstat -ano|findstr 5000

然后会出现以下内容:

在这里插入图片描述

这里我们可以看到,目前占用5000端口的是进程号为14440的这个进程,那么我们只要结束这个进程就可以正常运行Flask程序了,命令如下:

taskkill /pid 14440 /F

会出现以下内容:

在这里插入图片描述

杀死这个占用端口的进程之后,我们再去运行自己的Flask项目就会发现不会再报错了:

在这里插入图片描述

二、更改Flask项目的运行端口

第一种方式比较简单,但是也存在一定的不足,笔者的电脑在重启之后会再一次报错,查看端口占用情况后,发现还是有进程占用5000端口,需要重复进行杀死进程的操作才能恢复,所以更推荐直接更改Flask项目的运行端口,将5000端口改为一些电脑不常用的端口,步骤如下:

首先进入pycharm,在我们的导航栏里依次点击Run→Edit Configurations…

在这里插入图片描述

然后在点开的界面里,点击Configuration,在Additional options一栏中输入Flask项目要设置的IP地址以及端口,这里以IP地址127.0.0.1,端口5001为例,输入格式如下图所示,输入完成后点击Apply、OK即可。

在这里插入图片描述

更改完成后,咱们运行Flask项目,就会发现端口已经更改完成啦~

在这里插入图片描述

写在后面

至此,Flask项目端口冲突的问题就得到了彻底解决。Flask算是Python网页编程中比较简单的框架,自己做几个简单的项目之后会很容易上手,当然在学习过程中也会遇到很多问题,不过在网上都能找到解决方案,希望大家能够坚持下去,笔者后续也会继续更新解决问题的方案以及一些练手的项目,希望大家多多关注!

  • 10
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,以下是实现这个功能的基本步骤: 1. 安装 Flask 库:在终端中输入 `pip install Flask` 命令来安装 Flask 库。 2. 创建 Flask 应用程序:在 Python 文件中引入 Flask 库,创建 Flask 应用程序对象,并定义路由。 ```python from flask import Flask, request app = Flask(__name__) @app.route('/') def index(): # 获取当前用户 IP user_ip = request.remote_addr # 记录用户访问日志 log_access(user_ip) # 获取所有用户访问历史 access_history = read_access_history() # 构造页面内容 content = '<h1>当前用户IP:{}</h1>'.format(user_ip) content += '<h2>历史访问IP:</h2>' content += '<ul>' for ip in access_history: content += '<li>{}</li>'.format(ip) content += '</ul>' return content if __name__ == '__main__': app.run() ``` 在上面的代码中,我们创建了一个 Flask 应用程序对象,并定义一个路由。当用户访问网站根目录时,会触发 `index` 函数,该函数会获取当前用户的 IP 地址,记录用户访问日志,读取所有用户的访问历史,并构造页面内容返回给用户。 3. 实现记录用户访问日志功能:可以在 Flask 应用程序中添加一个 `log_access` 函数,用于记录用户访问日志。在这个函数中,我们可以打开一个日志文件,将当前用户的 IP 地址写入日志文件中。 ```python def log_access(ip): with open('access.log', 'a') as f: f.write(ip + '\n') ``` 4. 实现读取所有用户访问历史功能:可以在 Flask 应用程序中添加一个 `read_access_history` 函数,用于读取所有用户的访问历史。在这个函数中,我们可以打开日志文件,读取所有行,并将每个 IP 地址保存到一个列表中。 ```python def read_access_history(): with open('access.log', 'r') as f: access_history = [line.strip() for line in f] return access_history ``` 5. 运行 Flask 应用程序:在终端中运行 Python 文件,启动 Flask 应用程序。 ```bash python app.py ``` 现在,你可以在浏览器中访问 http://localhost:5000,查看网站的页面,页面将会显示当前用户的 IP 地址和历史访问 IP 地址。同时,网站还会将所有用户的访问 IP 地址记录到一个日志文件中。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值