Получение ошибки 404 вместо json при попытке использовать сервер daphne и pagekite

#python #server #daphne #pagekite

Вопрос:

поэтому я написал бэкэнд для своего веб-сайта с использованием Python и FastAPI и теперь хочу запустить его на своем компьютере или телефоне. Для запуска сервера python я решил использовать daphne, чтобы сделать его доступным с доменного имени, я решил использовать pagekite.

Однако, когда я отправляюсь в https://something.pagekite.me:8080/coordinates/?direction_x=1amp;direction_y=2amp;gas=2 (не фактическое доменное имя), I get 404 Not found File or directory not found. Sorry! когда я захожу в http://0.0.0.0:8000/coordinates/?direction_x=1amp;direction_y=2amp;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
 

main.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=0amp;direction_y=10amp;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.
Спасибо за вашу помощь!

Комментарии:

1. Один URL-адрес имеет порт 8000, один URL-адрес имеет порт 8080.

2. Я вижу, но это из-за автоматической настройки pagekite

3. Если я изменю порт с 8080 на 8000, я буду временно недоступен

4. Если я правильно понимаю документы pagekite, вам нужно https://something.pagekite.me/... без порта. Он перенаправляет порт 80 или 443 на любой локальный порт, который вы объявили.

5. @TimRoberts, который дает тот же результат, Временно недоступен, когда я захожу на него в Firefox

Ответ №1:

Комментарии:

1. Когда я делаю это в Termux, я получаю ошибку: Не удалось написать: /home/.pagekite.rc

2. @PetrL. расположение должно находиться внутри домашней папки пользователя, в которую вы поместили pagekit.py .

Ответ №2:

Комментарии:

1. Пожалуйста, добавьте дополнительные сведения, чтобы расширить свой ответ, например, ссылки на рабочий код или документацию.

2. Если бы вы прочитали комментарии, вы бы знали, что это не ответ

3. о, прости. я не думал, что это будет в комментариях