mirror of
https://github.com/arthur-pbty/PyRoute.git
synced 2026-06-03 23:36:22 +02:00
Add files via upload
This commit is contained in:
+52
@@ -0,0 +1,52 @@
|
||||
import socket
|
||||
import os
|
||||
import re
|
||||
from dotenv import load_dotenv
|
||||
|
||||
from route import *
|
||||
from controller import *
|
||||
|
||||
load_dotenv()
|
||||
listen = int(os.getenv("LISTEN"))
|
||||
host = os.getenv("HOST")
|
||||
port = int(os.getenv("PORT"))
|
||||
|
||||
def route(path):
|
||||
if path in routes:
|
||||
return globals()[routes[path]]
|
||||
else:
|
||||
return None
|
||||
|
||||
def create_server():
|
||||
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
|
||||
server_socket.bind((host, port))
|
||||
server_socket.listen(listen)
|
||||
print(f"Serveur en écoute sur http://{host}:{port}")
|
||||
|
||||
while True:
|
||||
client_socket, client_address = server_socket.accept()
|
||||
request_data = client_socket.recv(1024).decode('utf-8')
|
||||
request_lines = request_data.split('\r\n')
|
||||
request_line = request_lines[0]
|
||||
|
||||
# Utilisez une expression régulière pour extraire l'URL demandée
|
||||
match = re.match(r"GET (.+?) HTTP/1.1", request_line)
|
||||
if match:
|
||||
path = match.group(1)
|
||||
else:
|
||||
path = "/"
|
||||
|
||||
handler = route(path)
|
||||
|
||||
if handler is not None:
|
||||
response_body = handler()
|
||||
response_data = f"HTTP/1.1 200 OK\r\nContent-Length: {len(response_body)}\r\n\r\n{response_body}"
|
||||
else:
|
||||
response_body = "Page non trouvée"
|
||||
response_data = f"HTTP/1.1 404 Not Found\r\nContent-Length: {len(response_body)}\r\n\r\n{response_body}"
|
||||
|
||||
client_socket.sendall(response_data.encode('utf-8'))
|
||||
client_socket.close()
|
||||
|
||||
if __name__ == '__main__':
|
||||
create_server()
|
||||
Reference in New Issue
Block a user