当前位置: 首页 > news >正文

网站建设贰金手指下拉贰拾/我要推广

网站建设贰金手指下拉贰拾,我要推广,个性化网站定制,物流公司Python 云服务器应用,Https,定时重启 环境搭建Python模块模块导入生成Flask实例GET处理启动服务器打开网页验证 GET接入证书 支持https申请证书下载证书保留 xxx.crt 和 xxx.key文件就可以了 copy到python项目目录ssl_context 配置 宝塔面板操作在www目录下新建python工作目录在…

Python 云服务器应用,Https,定时重启

  • 环境搭建
  • Python模块
  • 模块导入
  • 生成Flask实例
  • GET处理
  • 启动服务器
  • 打开网页验证 GET
  • 接入证书 支持https
    • 申请证书
    • 下载证书
    • 保留 xxx.crt 和 xxx.key文件就可以了 copy到python项目目录
    • ssl_context 配置
  • 宝塔面板操作
    • 在www目录下新建python工作目录
    • 在python工作目录下新建项目子目录
    • 上传本地的 .py文件到服务器项目目录下![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/ffb04f92b8d0402bb26ac61e465356a0.png)
    • 宝塔操作 添加python项目
    • 项目配置 - 具体参数如下截图 - 配置好后 提交
    • 项目添加模块
    • 开放端口 8002 你用到哪个端口就放开哪个端口
    • 入站配置
      • 打开购买云服务器的平台网站
      • 进入实例
      • 添加入站规则
      • 协议填tcp 端口8002 备注 python服务器 其他的默认 就可以了
  • 测试云端GET
  • 测试云端POST
  • 配置服务器 定时器重启
    • 脚本写好了后执行一遍验证一下
  • 详细视频教程 - bilibili
  • Python源码
    • main.py
    • LockIP.py
  • Demo 仓库

环境搭建

  • python 3.6+
  • vscode
  • centos云服务器一台
  • 宝塔Liunx面板已安装
  • SSL证书 nginx版本

Python模块

  • flask
    搭建https服务器
  • gevent.pywsgi
    支持服务器生产环境

pip install flask
pip install gevent

模块导入

from flask import Flask,request,redirect,jsonify, url_for
from LockIP import IPStatus, check

生成Flask实例

app = Flask(__name__)

GET处理

@app.route('/new')
def newHtml():return "lpl 加油!"

启动服务器

def openserver():import datetimetimestr = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')print(f'{timestr} 服务器启动中.....')app.run(host="0.0.0.0", port=8000,debug=True)if __name__ == '__main__':openserver()

打开网页验证 GET

网页输入 http://127.0.0.1:8000/new

出现 lpl 加油! 服务器启动成功
在这里插入图片描述

接入证书 支持https

申请证书

以西部数据为案例
在这里插入图片描述

下载证书

下载支持nginx的版本
在这里插入图片描述

保留 xxx.crt 和 xxx.key文件就可以了 copy到python项目目录

  • .crt
  • .key

ssl_context 配置

这里填你自己申请的证书文件名 对应的crt和key文件

app.run(host="0.0.0.0", port=8002, ssl_context=('www.geek7.top.crt', 'www.geek7.top.key'))

宝塔面板操作

在www目录下新建python工作目录

在这里插入图片描述

在python工作目录下新建项目子目录

在这里插入图片描述

上传本地的 .py文件到服务器项目目录下在这里插入图片描述

宝塔操作 添加python项目

在这里插入图片描述

项目配置 - 具体参数如下截图 - 配置好后 提交

在这里插入图片描述

项目添加模块

在这里插入图片描述
不需要填版本好 直接填需要依赖的模块名就好了
在这里插入图片描述

开放端口 8002 你用到哪个端口就放开哪个端口

协议填tcp 端口8002 备注 python服务器 其他的默认 就可以了
在这里插入图片描述

入站配置

打开购买云服务器的平台网站

在这里插入图片描述

进入实例

在这里插入图片描述

添加入站规则

在这里插入图片描述

协议填tcp 端口8002 备注 python服务器 其他的默认 就可以了

测试云端GET

没有域名的 用ip也可以的 前面要用https
https://www.geek7.top:8002/new
在这里插入图片描述

测试云端POST

代码保留在案例了 自己去瞅瞅 给你一个发挥的机会 代码可以跑通 自己研究研究

配置服务器 定时器重启

  • 宝塔面板 - 计划任务 - Shell脚本
    在这里插入图片描述

  • 时间自填

  • 脚本内容

ps -ef|grep PYServer|grep -v grep|cut -c 9-15|xargs kill -9
cd /www/python_projs/PYServer/
/www/server/pyporject_evn/444ab1b88bd66070681fb30537aeeb8c_venv/bin/python3 -u /www/python_projs/PYServer/server.py

脚本内容 中的PYServer改成你的项目名
在这里插入图片描述

脚本写好了后执行一遍验证一下

怎么验证呢? 方式有很多种 最简单的一种 先关闭python项目 然后执行一次脚本 如果项目跑起来了 就表示shell脚本成功
在这里插入图片描述

详细视频教程 - bilibili

Python Https云服务器,定时重启

Python源码

main.py

from flask import Flask,request,redirect,jsonify, url_for
from LockIP import IPStatus, checkapp = Flask(__name__)@app.route('/new')
def newHtml():ip = request.remote_addrstatus = check(ip)if status == IPStatus.Lock:return "你已在黑名单中"elif status == IPStatus.Suspicion:return "频繁触发警告"  return "lpl 加油!"@app.route('/form',methods=['POST'])
def form():#获取上传的文件files = request.filesfor key in files:file = files[key]file.save(f"imgs/{file.filename}")return "upload success"def openserver():import datetimetimestr = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')print(f'{timestr} 服务器启动中.....')# 本地测试# app.run(host="0.0.0.0", port=8000,debug=True)# debug开发模式# app.run(host="0.0.0.0", port=8002, ssl_context=(#     'www.geek7.top.crt', 'www.geek7.top.key'))#生产环境from gevent import pywsgiserver = pywsgi.WSGIServer(('0.0.0.0',8002),app,keyfile='www.geek7.top.key', certfile='www.geek7.top.crt')server.serve_forever()if __name__ == '__main__':openserver()

LockIP.py

import time
from enum import Enumrequest_history = {}  #请求历史信息 包含ip 最后一次请求时间戳 频繁请求计数 违规次数
blacklist = [] #黑名单 通知一次玩家已经是在黑名单了
locklist = []  #锁定列表 返回空字符串class IPStatus(Enum):General = 1    Lock = 2Suspicion = 3def check( ip ):# 锁定ip列表if ip in locklist:return IPStatus.Lock# 黑名端 会通知一次客户端if ip in blacklist:locklist.append(ip)return IPStatus.Suspicion# 1秒内请求限制5次if ip not in request_history.keys():request_history[ip] = [time.time(), 1, 0 ]  # 最近call的时间, 短时间内调用的次数, 频繁计数else:if time.time() - request_history[ip][0] < 1:request_history[ip][1] += 1# 频繁请求 违规处理if request_history[ip][1] >= 5:#违规次数统计request_history[ip][2] += 1if request_history[ip][2] >= 5:blacklist.append(ip) #加入黑名端return IPStatus.Suspicionelse:request_history[ip][1] = 1request_history[ip][0] = time.time()return IPStatus.General

Demo 仓库

github

相关文章:

Python 云服务器应用,Https,定时重启

Python 云服务器应用,Https,定时重启 环境搭建Python模块模块导入生成Flask实例GET处理启动服务器打开网页验证 GET接入证书 支持https申请证书下载证书保留 xxx.crt 和 xxx.key文件就可以了 copy到python项目目录ssl_context 配置 宝塔面板操作在www目录下新建python工作目录在…...

pytorch 笔记:dist 和 cdist

1 dist 1.1 基本使用方法 torch.dist(input, other, p2) 计算两个Tensor之间的p-范数 1.2 主要参数 input输入张量other另一个输入张量p范数 input 和 other的形状需要是可广播的 1.3 举例 import torchxtorch.randn(4) x #tensor([ 1.2698, -0.1209, 0.0462, -1.3271…...

Java的List中的各种浅拷贝和深拷贝问题

先来看一组代码 public class Temp{public static void main(String[] args) {List<Integer> list new ArrayList<>();list.add(1);list.add(2);list.add(3);List<Integer> temp list;list.add(4);System.out.println(list.toString());System.out.print…...

20231207_最新已测_Centos7.4安装nginx1.24.0_安装详细步骤---Linux工作笔记066

以前安装的太模糊了,干脆重新写一个: 1.首先下载对应的nginx-1.24.0.tar.gz安装文件 2.然后: 去执行命令 安装依赖 yum install -y gcc yum install -y pcre pcre-devel yum install -y zlib zlib-devel yum install -y openssl openssl-devel 3.然后:去解压 tar -zxvf ngi…...

前端知识笔记(二十六)———React如何像Vue一样将css和js写在同一文件

如果想在React中想要像Vue一样把css和js写到一个文件中&#xff0c;可以使用CSS-in-JS。 使用CSS-in-JS 下载 npm i styled-components使用 就像写scss一样&#xff0c;不过需要声明元素的类型 基本语法及展示如下 import styled from "styled-components"expor…...

Photoshop Circular Text

Ctrl N 新增 现学现卖...

深入解析Spring Boot中的注解@PathVariable、@RequestParam、@RequestBody的正确使用

文章目录 1. 引言2. PathVariable&#xff1a;处理路径变量2.1 简介2.2 使用示例 3. RequestParam&#xff1a;处理请求参数3.1 简介3.2 使用示例 4. RequestBody&#xff1a;处理请求体4.1 简介4.2 使用示例 5. 多个注解的组合使用6. 参数绑定的原理6.1 HandlerMethodArgument…...

Qt Location中加载地图对象

在Qt Location中加载地图对象&#xff0c;你可以按照以下步骤进行操作&#xff1a; 1&#xff0c;首先&#xff0c;确保你已经安装了Qt Location模块&#xff0c;并在项目中包含了相应的头文件。在项目文件&#xff08;.pro&#xff09;中添加以下行&#xff1a; QT locatio…...

4-Docker命令之docker ps

1.docker ps介绍 docker ps命令是用来列出容器的相关信息 2.docker ps用法 docker ps [参数] [rootcentos79 ~]# docker ps --helpUsage: docker ps [OPTIONS]List containersAliases:docker container ls, docker container list, docker container ps, docker psOptions…...

你在地铁上修过bug吗?

作为技术人员&#xff0c;有没有遇到下班路上收到老板电话&#xff0c;系统故障&#xff0c;然后地铁上掏出电脑&#xff0c;修bug的场景。自己负责的业务线上出现问题&#xff0c;负责人心里是很慌的&#xff0c;在这种心理状态下做事很容易二次犯错&#xff0c;造成更大的问题…...

CPU、MCU、MPU、DSP、FPGA各是什么?有什么区别?

1、CPU 中央处理器&#xff0c;简称 CPU&#xff08;Central Processing Unit&#xff09;&#xff0c;中央处理器主要包括两个部分&#xff0c;即控制器、运算器&#xff0c;其中还包括高速缓冲存储器及实现它们之间联系的数据、控制的总线。 电子计算机三大核心部件就是CPU…...

SpringBoot之logback 在Linux系统上启动的时候,设置日志按日期分割并设置指定时间自动清除日志

一、在src/main/resources/下创建logback-spring.xml文件 <?xml version"1.0" encoding"UTF-8"?> <configuration><!-- 日志存放路径 --><property name"log.path" value"/home/xmmc/logs" /><!-- 日志…...

OpenHarmony北向-让更广泛的应用开发者更容易参与

一、标准系统的体验 按照官方文档指导&#xff0c;这样操作&#xff0c;OH标准系统开发板就可以运行开发者开发的OpenHarmony应用了。 二、实际情况 按照开发文档上的说明&#xff0c;肯定是装不上的。因为OH不同的发行版&#xff0c;不同发行板不同的设备&#xff0c;IDE&…...

数据结构之归并排序及排序总结

目录 归并排序 归并排序的时间复杂度 排序的稳定性 排序总结 归并排序 归并排序大家只需要掌握其递归方法即可&#xff0c;非递归方法由于在某些特殊场景下边界难控制&#xff0c;我们一般很少使用非递归实现归并排序。那么归并排序的递归方法我们究竟是怎样实现呢&#xff…...

仿windows12网盘,私有云盘部署教程,支持多种网盘

仿windows12网盘,私有云盘部署教程&#xff0c;支持多种网盘 资源宝分享&#xff1a;www.httple.net 视频教程&#xff1a;https://www.bilibili.com/video/BV1m64y1G7Bq/ 宝塔部署方式&#xff1a; 1.验证是否安装jdk,没有安装请看安装教程 推荐安装jdk8&#xff08;注意您…...

深度学习 时间序列回归学习笔记

目录 常用的深度学习时间序列回归模型: ARIMA模型 ETS模型 效果评估...

【postgresql】ERROR: INSERT has more expressions than target columns

执行下面sql insert into apply_account_cancellation3 select * from pply_account_cancellation; 返回下面错误信息 insert into apply_account_cancellation3 select * from apply_account_cancellation > ERROR: INSERT has more expressions than target colu…...

Android Kotlin语言下的文件存储

目录 将数据存储到文件中 创建文件和保存数据 读取文件 SharedPreferences存储 存储数据到SharedPreferences中 Context类中的getSharedPreferences()方法 Activity类中的getPreferences()方法 从SharedPreferences中读取数据 SQLite数据库存储 创建数据库 调用数据…...

Verilog 入门(八)(验证)

文章目录 编写测试验证程序波形产生值序列重复模式 测试验证程序实例从文本文件中读取向量实例&#xff1a;时序检测器 测试验证程序用于测试和验证设计方法的正确性。Verilog 提供强有力的结构来说明测试验证程序。 编写测试验证程序 测试验证程序有三个主要目的&#xff1a;…...

vue3 vue-router 导航守卫 (五)

在Vue 3中&#xff0c;导航守卫仍然是一个重要的概念&#xff0c;用于在路由切换时执行一些特定的逻辑。Vue Router提供了多个导航守卫&#xff0c;包括全局守卫、路由独享守卫和组件内守卫。可以在路由切换时执行一些特定的逻辑&#xff0c;例如身份验证、权限控制、数据加载等…...

Git命令---查看远程仓库

介绍 使用git命令查看绑定的远程仓库。 命令 git remote -v...

12.8作业

1. 使用手动连接&#xff0c;将登录框中的取消按钮使用qt4版本的连接到自定义的槽函数中&#xff0c;在自定义的槽函数中调用关闭函数 将登录按钮使用qt5版本的连接到自定义的槽函数中&#xff0c;在槽函数中判断ui界面上输入的账号是否为"admin"&#xff0c;密码是…...

算法:有效的括号(入栈出栈)

时间复杂度 O(n) 空间复杂度 O(n∣Σ∣)&#xff0c;其中 Σ 表示字符集&#xff0c;本题中字符串只包含 6 种括号 /*** param {string} s* return {boolean}*/ var isValid function(s) {const map {"(":")","{":"}","["…...

vxworks常用的指令归纳

目的&#xff1a;方便自己查阅 tftpboot 0x10000000 vxworks bootelf 0x10000000 ifconfig "gem0 dowm" ifconfig "gem0 inet 192.168.0.81" ifconfig "gem0 lladdr 01:02:03:04:05:06:07" ifconfig "gem0 up" ld 0,1,"…...

线性回归实战

3.1 使用正规方程进行求解 3.1.1 简单线性回归 公式 &#xff1a; y w x b y wx b ywxb 一元一次方程&#xff0c;在机器学习中一元表示一个特征&#xff0c;b表示截距&#xff0c;y表示目标值。 使用代码进行实现&#xff1a; 导入包 import numpy as np import matp…...

stm32 使用18B20 测试温度

用18b20 测试温度是非常常用的&#xff0c;不过18B20的调试不是这么容易的&#xff0c;有些内容网上很多的&#xff0c;不再重复说了&#xff0c;我先把波形说一下&#xff0c;再说程序部分&#xff1a; 整个都温度数据的顺序是&#xff1a; 1.700uS的低电平复位并测试18B20的…...

【Delphi】一个函数实现ios,android震动功能 Vibrate(包括3D Touch 中 Peek 震动等)

一、前言 我们在开发移动端APP的时候&#xff0c;有时可能需要APP能够提供震动功能&#xff0c;以便提醒操作者&#xff0c;特别是ios提供的3D Touch触感功能&#xff0c;操作者操作时会有触感震动&#xff0c;给操作者的感觉很友好。那么&#xff0c;在Delphi的移动端FMX开发中…...

国产Type-C PD芯片—接口快充取电芯片

常用USB PDTYPE-C受电端&#xff0c;即设备端协议IC芯片&#xff08;PD Sink&#xff0c;也叫PD诱骗芯片&#xff09;&#xff0c;诱导取电芯片。 产品介绍 LDR6328: ◇ 采用 SOP-8 封装 ◇ 兼容 USB PD 3.0 规范&#xff0c;支持 USB PD 2.0 ◇ 兼容 QC 3.0 规范&#x…...

pytorch学习6-非线性变换(ReLU和sigmoid)

系列文章目录 pytorch学习1-数据加载以及Tensorboard可视化工具pytorch学习2-Transforms主要方法使用pytorch学习3-torchvisin和Dataloader的使用pytorch学习4-简易卷积实现pytorch学习5-最大池化层的使用pytorch学习6-非线性变换&#xff08;ReLU和sigmoid&#xff09;pytorc…...

详解Keras3.0 Models API: Whole model saving loading

1、save方法 Model.save(filepath, overwriteTrue, **kwargs) 将模型另存为.keras文件 参数说明 filepath: 保存模型的路径。必须以.keras结尾overwrite&#xff1a;布尔值&#xff0c;表示是否覆盖已存在的文件。默认为 True&#xff0c;即覆盖已存在的文件。save_format…...