2

所以我用 Python 和 FastAPI 为我的网站编写了一个后端,现在想在我的电脑或手机上运行它。为了运行 python 服务器,我决定使用 daphne,为了使其可以从域名访问,我决定使用 pagekite。

但是,当我去https://something.pagekite.me:8080/coordinates/?direction_x=1&direction_y=2&gas=2(不是实际域名)时,I get 404 Not found File or directory not found. Sorry!当我去http://0.0.0.0:8000/ coordinates/?direction_x=1&direction_y=2&gas=2我得到了我期望的实际 json 响应。这是我用来运行 main.py 作为后端的命令。

daphne -b 0.0.0.0 -p 8000 main:app

python3 pagekite.py --frontend=something.pagekite.me --service_on=http://0.0.0.0:8000

主要.py:

from fastapi import FastAPI
from datetime import datetime
from pydantic import BaseModel
from fastapi.middleware.cors import CORSMiddleware

app = FastAPI()


origins = ["*"]

app.add_middleware(
    CORSMiddleware,
    allow_origins=origins,
    allow_credentials=True,
    allow_methods=["*"],
    allow_headers=["*"],
)

@app.get("/")
def root():
    return {"message": "Hello World"}

directionX = 0
directionY = 0
Gas = 0
@app.get("/coordinates/") #post is used to get data, but I can send it using get and query parameters response_model=Item)
def getcoordinates(direction_x,direction_y,gas): #http://127.0.0.1:8000/coordinates/?direction_x=0&direction_y=10&gas=50
    global directionX,directionY, Gas #changed async def to def 
    directionX = direction_x
    directionY = direction_y
    Gas = gas
    return {"data":(direction_x,direction_y,gas)}

这是整个 pagekite 日志:

python3 pagekite.py --frontend=something.pagekite.me --service_on=http://172.20.240.0:8000
>>> Hello! This is pagekite.py v1.5.2.201011.                   [CTRL+C = Stop]
    Built-in HTTPD is on localhost:43503, secret=CCV0mPEbKJ+ZGhi_7SQT+MYr      
Exception in thread Thread-7:arting up...                                      
Traceback (most recent call last):
  File "/usr/lib/python3.8/threading.py", line 932, in _bootstrap_inner
    self.run()
  File "/usr/lib/python3.8/threading.py", line 870, in run
    self._target(*self._args, **self._kwargs)
  File "<string>", line 3452, in sping
ValueError: not enough values to unpack (expected 2, got 1)
    Connecting to front-end relay 159.69.241.220:443 ...                       
     - Relay supports 10 protocols on 19 public ports.                         
     - Raw TCP/IP (HTTP proxied) kites are available.                          
     - To enable more logging, add option: --logfile=/path/to/logfile          
    Abuse/DDOS protection: Relaying traffic for up to 5 clients per 10800s.    
    Quota: You have 26 days, 5.0 tunnels left.                                 
~<> Flying builtin HTTPD as https://drooon.pagekite.me:8080/                   
     - https://something.pagekite.me:8080/                                        
    93.153.49.187 < http://something.pagekite.me:8080 (builtin)                   
 << pagekite.py [flying]   Kites are flying and all is well.  

             


    

我使用 Linux Mint。谢谢你的帮助!

4

2 回答 2

1

信息可以在pagekite doc 下的Kite ManagementSection中找到

pagekite.py 8000 http:something.pagekite.me
于 2021-09-01T12:25:15.153 回答
-1

您为链接使用了错误的端口。而不是https://something.pagekite.me:8080/coordinates/?direction_x=1&direction_y=2&gas=2尝试https://something.pagekite.me:8000/coordinates/?direction_x=1&direction_y=2&gas=2

于 2021-09-01T09:52:31.303 回答