添加项目文件。
This commit is contained in:
parent
3c6ddd7448
commit
14be2c9973
76
FlaskWebProject1.pyproj
Normal file
76
FlaskWebProject1.pyproj
Normal file
@ -0,0 +1,76 @@
|
||||
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0">
|
||||
<PropertyGroup>
|
||||
<VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">10.0</VisualStudioVersion>
|
||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||
<SchemaVersion>2.0</SchemaVersion>
|
||||
<ProjectGuid>7a041c64-9b7a-497d-9eb7-05f9485f072c</ProjectGuid>
|
||||
<ProjectHome>.</ProjectHome>
|
||||
<ProjectTypeGuids>{789894c7-04a9-4a11-a6b5-3f4435165112};{1b580a1a-fdb3-4b32-83e1-6407eb2722e6};{349c5851-65df-11da-9384-00065b846f21};{888888a0-9f3d-457c-b088-3a5042f75d52}</ProjectTypeGuids>
|
||||
<StartupFile>app.py</StartupFile>
|
||||
<SearchPath>
|
||||
</SearchPath>
|
||||
<WorkingDirectory>.</WorkingDirectory>
|
||||
<LaunchProvider>Web launcher</LaunchProvider>
|
||||
<WebBrowserUrl>http://localhost</WebBrowserUrl>
|
||||
<OutputPath>.</OutputPath>
|
||||
<SuppressCollectPythonCloudServiceFiles>true</SuppressCollectPythonCloudServiceFiles>
|
||||
<Name>FlaskWebProject1</Name>
|
||||
<RootNamespace>FlaskWebProject1</RootNamespace>
|
||||
<SuppressEnvironmentCreationPrompt>True</SuppressEnvironmentCreationPrompt>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)' == 'Debug' ">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<EnableUnmanagedDebugging>false</EnableUnmanagedDebugging>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)' == 'Release' ">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<EnableUnmanagedDebugging>false</EnableUnmanagedDebugging>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="app.py" />
|
||||
<Compile Include="timeset.py" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Content Include="requirements.txt" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\Python Tools\Microsoft.PythonTools.Web.targets" />
|
||||
<!-- Specify pre- and post-build commands in the BeforeBuild and
|
||||
AfterBuild targets below. -->
|
||||
<Target Name="BeforeBuild">
|
||||
</Target>
|
||||
<Target Name="AfterBuild">
|
||||
</Target>
|
||||
<ProjectExtensions>
|
||||
<VisualStudio>
|
||||
<FlavorProperties GUID="{349c5851-65df-11da-9384-00065b846f21}">
|
||||
<WebProjectProperties>
|
||||
<AutoAssignPort>True</AutoAssignPort>
|
||||
<UseCustomServer>True</UseCustomServer>
|
||||
<CustomServerUrl>http://localhost</CustomServerUrl>
|
||||
<SaveServerSettingsInUserFile>False</SaveServerSettingsInUserFile>
|
||||
</WebProjectProperties>
|
||||
</FlavorProperties>
|
||||
<FlavorProperties GUID="{349c5851-65df-11da-9384-00065b846f21}" User="">
|
||||
<WebProjectProperties>
|
||||
<StartPageUrl>
|
||||
</StartPageUrl>
|
||||
<StartAction>CurrentPage</StartAction>
|
||||
<AspNetDebugging>True</AspNetDebugging>
|
||||
<SilverlightDebugging>False</SilverlightDebugging>
|
||||
<NativeDebugging>False</NativeDebugging>
|
||||
<SQLDebugging>False</SQLDebugging>
|
||||
<ExternalProgram>
|
||||
</ExternalProgram>
|
||||
<StartExternalURL>
|
||||
</StartExternalURL>
|
||||
<StartCmdLineArguments>
|
||||
</StartCmdLineArguments>
|
||||
<StartWorkingDirectory>
|
||||
</StartWorkingDirectory>
|
||||
<EnableENC>False</EnableENC>
|
||||
<AlwaysStartWebServerOnDebug>False</AlwaysStartWebServerOnDebug>
|
||||
</WebProjectProperties>
|
||||
</FlavorProperties>
|
||||
</VisualStudio>
|
||||
</ProjectExtensions>
|
||||
</Project>
|
25
FlaskWebProject1.sln
Normal file
25
FlaskWebProject1.sln
Normal file
@ -0,0 +1,25 @@
|
||||
|
||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||
# Visual Studio Version 17
|
||||
VisualStudioVersion = 17.9.34728.123
|
||||
MinimumVisualStudioVersion = 10.0.40219.1
|
||||
Project("{888888A0-9F3D-457C-B088-3A5042F75D52}") = "FlaskWebProject1", "FlaskWebProject1.pyproj", "{7A041C64-9B7A-497D-9EB7-05F9485F072C}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|Any CPU = Debug|Any CPU
|
||||
Release|Any CPU = Release|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{7A041C64-9B7A-497D-9EB7-05F9485F072C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{7A041C64-9B7A-497D-9EB7-05F9485F072C}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{7A041C64-9B7A-497D-9EB7-05F9485F072C}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{7A041C64-9B7A-497D-9EB7-05F9485F072C}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
EndGlobalSection
|
||||
GlobalSection(ExtensibilityGlobals) = postSolution
|
||||
SolutionGuid = {6A9CE5FB-EF11-44FA-8527-4F24C7C85362}
|
||||
EndGlobalSection
|
||||
EndGlobal
|
102
app.py
Normal file
102
app.py
Normal file
@ -0,0 +1,102 @@
|
||||
"""
|
||||
This script runs the application using a development server.
|
||||
It contains the definition of routes and views for the application.
|
||||
"""
|
||||
|
||||
import time
|
||||
from flask import Flask, request, jsonify
|
||||
import requests
|
||||
import json
|
||||
from timeset import timeset
|
||||
app = Flask(__name__)
|
||||
@app.route('/send=0', methods=['GET','POST'])
|
||||
def send_custom_json_0():
|
||||
time_stamp,nonce,sign=timeset()
|
||||
custom_json = {
|
||||
"system": {
|
||||
"ver": "1.0",
|
||||
"sign": sign,
|
||||
"appId": "lc0be9b1a760e44634",
|
||||
"time": time_stamp,
|
||||
"nonce": nonce
|
||||
},
|
||||
"params": {
|
||||
"token": "At_0000hz7d3dcf1dbd884b4ba94a26c621",
|
||||
"deviceId": "9F01FD3PAZ9B6B4",
|
||||
"channelId": "0",
|
||||
"operation": "0",
|
||||
"duration": "1000"
|
||||
},
|
||||
"id": "1"
|
||||
}
|
||||
target_url = 'https://openapi.lechange.cn:443/openapi/controlMovePTZ'
|
||||
headers = {'Content-Type': 'application/json'}
|
||||
try:
|
||||
# 将自定义JSON数据转换为字符串
|
||||
json_payload = json.dumps(custom_json)
|
||||
|
||||
# 发送POST请求到外部API
|
||||
response = requests.post(target_url, data=json_payload, headers=headers)
|
||||
|
||||
# 检查请求是否成功
|
||||
if response.status_code == 200:
|
||||
print('Request sent successfully')
|
||||
# 返回目标API的响应给客户端
|
||||
return jsonify(response.json())
|
||||
else:
|
||||
print(f'Failed to send request, status code: {response.status_code}')
|
||||
return jsonify({'error': 'Failed to send request'}), 500
|
||||
|
||||
except requests.exceptions.RequestException as e:
|
||||
print(f'Error occurred during request: {e}')
|
||||
return jsonify({'error': str(e)}), 500
|
||||
@app.route('/send=1', methods=['GET','POST'])
|
||||
def send_custom_json_1():
|
||||
time_stamp,nonce,sign=timeset()
|
||||
custom_json = {
|
||||
"system": {
|
||||
"ver": "1.0",
|
||||
"sign": sign,
|
||||
"appId": "lc0be9b1a760e44634",
|
||||
"time": time_stamp,
|
||||
"nonce": nonce
|
||||
},
|
||||
"params": {
|
||||
"token": "At_0000hz7d3dcf1dbd884b4ba94a26c621",
|
||||
"deviceId": "9F01FD3PAZ9B6B4",
|
||||
"channelId": "0",
|
||||
"operation": "1",
|
||||
"duration": "1000"
|
||||
},
|
||||
"id": "1"
|
||||
}
|
||||
target_url = 'https://openapi.lechange.cn:443/openapi/controlMovePTZ'
|
||||
headers = {'Content-Type': 'application/json'}
|
||||
try:
|
||||
# 将自定义JSON数据转换为字符串
|
||||
json_payload = json.dumps(custom_json)
|
||||
|
||||
# 发送POST请求到外部API
|
||||
response = requests.post(target_url, data=json_payload, headers=headers)
|
||||
|
||||
# 检查请求是否成功
|
||||
if response.status_code == 200:
|
||||
print('Request sent successfully')
|
||||
# 返回目标API的响应给客户端
|
||||
return jsonify(response.json())
|
||||
else:
|
||||
print(f'Failed to send request, status code: {response.status_code}')
|
||||
return jsonify({'error': 'Failed to send request'}), 500
|
||||
|
||||
except requests.exceptions.RequestException as e:
|
||||
print(f'Error occurred during request: {e}')
|
||||
return jsonify({'error': str(e)}), 500
|
||||
|
||||
if __name__ == '__main__':
|
||||
import os
|
||||
HOST = os.environ.get('SERVER_HOST', 'localhost')
|
||||
try:
|
||||
PORT = int(os.environ.get('SERVER_PORT', '5555'))
|
||||
except ValueError:
|
||||
PORT = 5555
|
||||
app.run(HOST, PORT)
|
1
requirements.txt
Normal file
1
requirements.txt
Normal file
@ -0,0 +1 @@
|
||||
Flask>=2.2.3
|
16
timeset.py
Normal file
16
timeset.py
Normal file
@ -0,0 +1,16 @@
|
||||
import time
|
||||
import uuid
|
||||
import hashlib
|
||||
def timeset():
|
||||
# 获取当前时间戳
|
||||
time_stamp = int(time.time())
|
||||
# 获取随机数
|
||||
nonce = str(uuid.uuid4())
|
||||
# 应用密钥
|
||||
app_secret = "8ff611f60e6e4413804379108b617f"
|
||||
# 生成原始串
|
||||
SIGN_TEMPLATE = "time:{},nonce:{},appSecret:{}".format(time_stamp, nonce, app_secret)
|
||||
# 计算签名
|
||||
sign = hashlib.md5(SIGN_TEMPLATE.encode()).hexdigest()
|
||||
print("sign:", sign)
|
||||
return time_stamp,nonce,sign
|
Loading…
Reference in New Issue
Block a user