எளிய APIகள், டைனமிக் வெப் சேவையகங்கள் மற்றும் சக்திவாய்ந்த உள் கருவிகளை உருவாக்க பைத்தானின் http.server-ஐ (முன்னர் BaseHTTPServer) தனிப்பயனாக்குவது குறித்த உலகளாவிய டெவலப்பர்களுக்கான விரிவான வழிகாட்டி.
பைத்தானின் உள்ளமைக்கப்பட்ட HTTP சேவையகத்தை மாஸ்டரிங் செய்தல்: தனிப்பயனாக்கத்தில் ஒரு ஆழமான டைவ்
பைதான் அதன் "பேட்டரிகள் உள்ளடக்கிய" தத்துவத்திற்காக கொண்டாடப்படுகிறது, இது டெவலப்பர்களுக்கு குறைந்தபட்ச வெளிப்புற சார்புகளுடன் செயல்படும் பயன்பாடுகளை உருவாக்க உதவும் ஒரு சிறந்த நிலையான நூலகத்தை வழங்குகிறது. மிகவும் பயனுள்ள, ஆனால் அடிக்கடி கவனிக்கப்படாத இந்த பேட்டரிகளில் ஒன்று உள்ளமைக்கப்பட்ட HTTP சேவையகம் ஆகும். நீங்கள் அதை அதன் நவீன பைதான் 3 பெயரான http.server
அல்லது அதன் மரபு பைதான் 2 பெயரான BaseHTTPServer
என்று அறிந்திருந்தாலும், இந்த தொகுதி வலை நெறிமுறைகளைப் புரிந்துகொள்வதற்கும் இலகுரக வலை சேவைகளை உருவாக்குவதற்கும் ஒரு நுழைவாயிலாகும்.
பல டெவலப்பர்கள் ஒரு கோப்பகத்தில் கோப்புகளை வழங்கும் ஒரு லைனராக முதலில் சந்தித்தாலும், அதன் உண்மையான சக்தி அதன் விரிவாக்கத்தில்தான் உள்ளது. அதன் முக்கிய கூறுகளை துணைப்பிரிவு செய்வதன் மூலம், இந்த எளிய கோப்பு சேவையகத்தை தனிப்பயனாக்கப்பட்ட வலை பயன்பாடாகவோ, முன்-இறுதி மேம்பாட்டிற்கான மாதிரி API ஆகவோ, IoT சாதனங்களுக்கான தரவு பெறுபவராகவோ அல்லது சக்திவாய்ந்த உள் கருவியாகவோ மாற்றலாம். இந்த வழிகாட்டி உங்களை அடிப்படைகளிலிருந்து மேம்பட்ட தனிப்பயனாக்கம் வரை அழைத்துச் செல்லும், உங்கள் சொந்த திட்டங்களுக்கு இந்த அற்புதமான தொகுதியைப் பயன்படுத்த உங்களுக்கு உதவும்.
அடிப்படைகள்: கட்டளை வரியிலிருந்து ஒரு எளிய சேவையகம்
குறியீட்டில் மூழ்குவதற்கு முன், மிகவும் பொதுவான பயன்பாட்டு நிகழ்வைப் பார்ப்போம். உங்களிடம் பைதான் நிறுவப்பட்டிருந்தால், உங்களிடம் ஏற்கனவே ஒரு வலை சேவையகம் உள்ளது. டெர்மினல் அல்லது கட்டளை வரியில் பயன்படுத்தி உங்கள் கணினியில் உள்ள எந்த கோப்பகத்திற்கும் சென்று பின்வரும் கட்டளையை இயக்கவும் (பைதான் 3 க்கு):
python -m http.server 8000
உடனடியாக, உங்களுடைய தற்போதைய இருப்பிடத்தின் கோப்புகள் மற்றும் துணை கோப்பகங்களை வழங்கும் 8000 போர்ட்டில் இயங்கும் வலை சேவையகம் உங்களிடம் உள்ளது. http://localhost:8000
இல் உங்கள் உலாவியில் இருந்து அதை அணுகலாம். இது இதற்கு நம்பமுடியாத பயனுள்ளதாக இருக்கும்:
- உள்ளூர் நெட்வொர்க்கில் கோப்புகளை விரைவாகப் பகிர்தல்.
- சிக்கலான அமைப்பு இல்லாமல் எளிய HTML, CSS மற்றும் JavaScript திட்டங்களைச் சோதித்தல்.
- வெவ்வேறு கோரிக்கைகளை வலை சேவையகம் எவ்வாறு கையாளுகிறது என்பதை ஆய்வு செய்தல்.
இருப்பினும், இந்த ஒரு லைனர் ஒரு பனிக்கட்டியின் முனை மட்டுமே. இது முன் கட்டப்பட்ட, பொதுவான சேவையகத்தை இயக்குகிறது. தனிப்பயன் தர்க்கத்தைச் சேர்க்க, வெவ்வேறு கோரிக்கை வகைகளைக் கையாள அல்லது மாறும் உள்ளடக்கத்தை உருவாக்க, நாம் நமது சொந்த பைதான் ஸ்கிரிப்டை எழுத வேண்டும்.
முக்கிய கூறுகளைப் புரிந்துகொள்வது
இந்த தொகுதியுடன் உருவாக்கப்பட்ட வலை சேவையகம் இரண்டு முக்கிய பகுதிகளைக் கொண்டுள்ளது: சேவையகம் மற்றும் கையாளுநர். அவற்றின் தனித்துவமான பங்குகளைப் புரிந்துகொள்வது பயனுள்ள தனிப்பயனாக்கத்திற்கு முக்கியமாகும்.
1. சேவையகம்: HTTPServer
ஒரு குறிப்பிட்ட முகவரி மற்றும் போர்ட்டில் உள்வரும் நெட்வொர்க் இணைப்புகளைக் கேட்பது சேவையகத்தின் வேலை. இது TCP இணைப்புகளை ஏற்கும் இயந்திரமாகும், மேலும் அவற்றை செயலாக்க ஒரு கையாளுநரிடம் அனுப்புகிறது. http.server
தொகுதியில், இது பொதுவாக HTTPServer
வகுப்பால் கையாளப்படுகிறது. சேவையக முகவரியை (('localhost', 8000)
போன்ற ஒரு டப்பிள்) மற்றும் ஒரு கையாளுநர் வகுப்பை வழங்குவதன் மூலம் அதன் ஒரு நிகழ்வை உருவாக்குகிறீர்கள்.
நெட்வொர்க் சாக்கெட்டை நிர்வகிப்பதும், கோரிக்கை-பதில் சுழற்சியை ஒழுங்கமைப்பதும் இதன் முக்கிய பொறுப்பாகும். பெரும்பாலான தனிப்பயனாக்கங்களுக்கு, நீங்கள் HTTPServer
வகுப்பையே மாற்றத் தேவையில்லை, ஆனால் அது அங்கு உள்ளது, நிகழ்ச்சியை இயக்குகிறது என்பதை அறிவது அவசியம்.
2. கையாளுநர்: BaseHTTPRequestHandler
இங்கேதான் மந்திரம் நடக்கிறது. உள்வரும் HTTP கோரிக்கையைப் பாகுபடுத்துவதற்கும், கிளையண்ட் என்ன கேட்கிறார் என்பதைப் புரிந்துகொள்வதற்கும், பொருத்தமான HTTP பதிலைப் உருவாக்குவதற்கும் கையாளுநர் பொறுப்பு. சேவையகம் ஒவ்வொரு புதிய கோரிக்கையையும் பெறும்போதும், அதை செயலாக்க உங்கள் கையாளுநர் வகுப்பின் ஒரு நிகழ்வை உருவாக்குகிறது.
http.server
தொகுதி சில முன் கட்டப்பட்ட கையாளுநர்களை வழங்குகிறது:
BaseHTTPRequestHandler
: இது மிகவும் அடிப்படையான கையாளுநர். இது கோரிக்கை மற்றும் தலைப்புகளைப் பாகுபடுத்துகிறது, ஆனால் GET அல்லது POST போன்ற குறிப்பிட்ட கோரிக்கை முறைகளுக்கு எவ்வாறு பதிலளிப்பது என்று தெரியாது. எல்லாவற்றையும் புதிதாக உருவாக்க விரும்பும் போது மரபுரிமையாக சிறந்த அடிப்படை வகுப்பு இது.SimpleHTTPRequestHandler
: இதுBaseHTTPRequestHandler
இலிருந்து மரபுரிமையாக வருகிறது, மேலும் தற்போதைய கோப்பகத்திலிருந்து கோப்புகளை வழங்கும் தர்க்கத்தைச் சேர்க்கிறது. நீங்கள்python -m http.server
ஐ இயக்கும்போது, இந்த கையாளுநரைப் பயன்படுத்துகிறீர்கள். இயல்புநிலை கோப்பு வழங்கும் நடத்தையின் மேல் தனிப்பயன் தர்க்கத்தைச் சேர்க்க விரும்பினால், இது ஒரு சிறந்த தொடக்க புள்ளியாகும்.CGIHTTPRequestHandler
: இது CGI ஸ்கிரிப்டுகளைக் கையாளும் வகையில்SimpleHTTPRequestHandler
ஐ நீட்டிக்கிறது. இது நவீன வலை மேம்பாட்டில் குறைவாகவே உள்ளது, ஆனால் இது நூலகத்தின் வரலாற்றில் ஒரு பகுதியாகும்.
கிட்டத்தட்ட அனைத்து தனிப்பயன் சேவையக பணிகளுக்கும், உங்கள் வேலை BaseHTTPRequestHandler
அல்லது SimpleHTTPRequestHandler
இலிருந்து மரபுரிமையாக வரும் ஒரு புதிய வகுப்பை உருவாக்குவதையும் அதன் முறைகளை மீறுவதையும் உள்ளடக்கும்.
உங்களின் முதல் தனிப்பயன் சேவையகம்: ஒரு "ஹலோ, வேர்ல்ட்!" உதாரணம்
கட்டளை வரியைத் தாண்டி ஒரு தனிப்பயன் செய்தியுடன் பதிலளிக்கும் ஒரு சேவையகத்திற்கான எளிய பைதான் ஸ்கிரிப்டை எழுதுவோம். BaseHTTPRequestHandler
இலிருந்து மரபுரிமையாக பெறுவோம், மேலும் எந்த HTTP GET கோரிக்கைகளையும் கையாள தானாகவே அழைக்கப்படும் do_GET
முறையை செயல்படுத்துவோம்.
custom_server.py
என்ற கோப்பை உருவாக்கவும்:
# Use http.server for Python 3
from http.server import BaseHTTPRequestHandler, HTTPServer
import time
hostName = "localhost"
serverPort = 8080
class MyServer(BaseHTTPRequestHandler):
def do_GET(self):
# 1. Send the response status code
self.send_response(200)
# 2. Send headers
self.send_header("Content-type", "text/html")
self.end_headers()
# 3. Write the response body
self.wfile.write(bytes("<html><head><title>My Custom Server</title></head>", "utf-8"))
self.wfile.write(bytes("<p>Request: %s</p>" % self.path, "utf-8"))
self.wfile.write(bytes("<body>", "utf-8"))
self.wfile.write(bytes("<p>This is a custom server, created with Python's http.server.</p>", "utf-8"))
self.wfile.write(bytes("</body></html>", "utf-8"))
if __name__ == "__main__":
webServer = HTTPServer((hostName, serverPort), MyServer)
print(f"Server started http://{hostName}:{serverPort}")
try:
webServer.serve_forever()
except KeyboardInterrupt:
pass
webServer.server_close()
print("Server stopped.")
இதை இயக்க, உங்கள் டெர்மினலில் python custom_server.py
ஐ இயக்கவும். உங்கள் உலாவியில் http://localhost:8080
ஐப் பார்வையிடும்போது, உங்கள் தனிப்பயன் HTML செய்தியைக் காண்பீர்கள். நீங்கள் http://localhost:8080/some/path
போன்ற வேறு பாதையைப் பார்வையிட்டால், அந்த பாதை செய்தியில் பிரதிபலிக்கும்.
do_GET
முறையை உடைப்போம்:
self.send_response(200)
: இது HTTP நிலை வரியை அனுப்புகிறது.200 OK
என்பது வெற்றிகரமான கோரிக்கைக்கான நிலையான பதில்.self.send_header("Content-type", "text/html")
: இது HTTP தலைப்பை அனுப்புகிறது. இங்கே, நாங்கள் HTML ஐ அனுப்புகிறோம் என்பதை உலாவிக்கு சொல்கிறோம். பக்கத்தை சரியாக வழங்க இது முக்கியம்.self.end_headers()
: இது ஒரு வெற்று வரியை அனுப்புகிறது, இது HTTP தலைப்புகளின் முடிவையும் பதில் உடலின் தொடக்கத்தையும் குறிக்கிறது.self.wfile.write(...)
:self.wfile
என்பது உங்கள் பதில் உடலை எழுதக்கூடிய ஒரு கோப்பு போன்ற பொருள். இது சரங்களை அல்ல, பைட்களை எதிர்பார்க்கிறது, எனவே நமது HTML சரத்தைbytes("…", "utf-8")
ஐப் பயன்படுத்தி பைட்களாக குறியாக்கம் செய்ய வேண்டும்.
மேம்பட்ட தனிப்பயனாக்கம்: நடைமுறை குறிப்புகள்
இப்போது நீங்கள் அடிப்படைகளைப் புரிந்துகொண்டதால், அதிக சக்திவாய்ந்த தனிப்பயனாக்கங்களை ஆராய்வோம்.
POST கோரிக்கைகளைக் கையாளுதல் (do_POST
)
வலை பயன்பாடுகள் பெரும்பாலும் தரவைப் பெற வேண்டும், எடுத்துக்காட்டாக, HTML படிவம் அல்லது API அழைப்பிலிருந்து. இது பொதுவாக POST கோரிக்கை மூலம் செய்யப்படுகிறது. இதை கையாள, நீங்கள் do_POST
முறையை மீறுகிறீர்கள்.
do_POST
உள்ளே, நீங்கள் கோரிக்கை உடலைப் படிக்க வேண்டும். இந்த உடலின் நீளம் Content-Length
தலைப்பில் குறிப்பிடப்பட்டுள்ளது.
POST கோரிக்கையிலிருந்து JSON தரவைப் படித்து அதை மீண்டும் எதிரொலிக்கும் ஒரு கையாளுநரின் எடுத்துக்காட்டு இங்கே:
import json
from http.server import BaseHTTPRequestHandler, HTTPServer
class APIServer(BaseHTTPRequestHandler):
def _send_cors_headers(self):
"""Sends headers to allow cross-origin requests"""
self.send_header("Access-Control-Allow-Origin", "*")
self.send_header("Access-Control-Allow-Methods", "GET, POST, OPTIONS")
self.send_header("Access-Control-Allow-Headers", "X-Requested-With, Content-Type")
def do_OPTIONS(self):
"""Handles pre-flight CORS requests"""
self.send_response(200)
self._send_cors_headers()
self.end_headers()
def do_POST(self):
# 1. Read the content-length header
content_length = int(self.headers['Content-Length'])
# 2. Read the request body
post_data = self.rfile.read(content_length)
# For demonstration, let's log the received data
print(f"Received POST data: {post_data.decode('utf-8')}")
# 3. Process the data (here, we just echo it back as JSON)
try:
received_json = json.loads(post_data)
response_data = {"status": "success", "received_data": received_json}
except json.JSONDecodeError:
self.send_response(400) # Bad Request
self.end_headers()
self.wfile.write(bytes('{"error": "Invalid JSON"}', "utf-8"))
return
# 4. Send a response
self.send_response(200)
self._send_cors_headers()
self.send_header("Content-type", "application/json")
self.end_headers()
self.wfile.write(json.dumps(response_data).encode("utf-8"))
# Main execution block remains the same...
if __name__ == "__main__":
# ... (use the same HTTPServer setup as before, but with APIServer as the handler)
server_address = ('localhost', 8080)
httpd = HTTPServer(server_address, APIServer)
print('Starting server on port 8080...')
httpd.serve_forever()
CORS பற்றிய குறிப்பு: do_OPTIONS
முறை மற்றும் _send_cors_headers
செயல்பாடு கிராஸ்-ஆரிஜின் ரிசோர்ஸ் ஷேரிங் (CORS) ஐ கையாள சேர்க்கப்பட்டுள்ளன. வேறு தோற்றத்திலிருந்து (டொமைன்/போர்ட்) வழங்கப்படும் வலைப் பக்கத்திலிருந்து உங்கள் API ஐ அழைத்தால் இது பெரும்பாலும் அவசியம்.
JSON பதில்களுடன் ஒரு எளிய API ஐ உருவாக்குதல்
அடிப்படை ரூட்டிங் கொண்ட சேவையகத்தை உருவாக்க முந்தைய எடுத்துக்காட்டில் விரிவுபடுத்துவோம். கிளையண்ட் எந்த ஆதாரத்தைக் கோருகிறார் என்பதைத் தீர்மானிக்க self.path
பண்பை ஆய்வு செய்யலாம், மேலும் அதற்கேற்ப பதிலளிக்கலாம். இது ஒரு சேவையகத்திற்குள் பல API எண்ட்பாயிண்டுகளை உருவாக்க அனுமதிக்கிறது.
import json
from http.server import BaseHTTPRequestHandler, HTTPServer
from urllib.parse import urlparse, parse_qs
# Mock data
users = {
1: {"name": "Alice", "country": "Canada"},
2: {"name": "Bob", "country": "Australia"}
}
class APIHandler(BaseHTTPRequestHandler):
def _set_headers(self, status_code=200):
self.send_response(status_code)
self.send_header("Content-type", "application/json")
self.send_header("Access-Control-Allow-Origin", "*")
self.end_headers()
def do_GET(self):
parsed_path = urlparse(self.path)
path = parsed_path.path
if path == "/api/users":
self._set_headers()
self.wfile.write(json.dumps(list(users.values())).encode("utf-8"))
elif path.startswith("/api/users/"):
try:
user_id = int(path.split('/')[-1])
user = users.get(user_id)
if user:
self._set_headers()
self.wfile.write(json.dumps(user).encode("utf-8"))
else:
self._set_headers(404)
self.wfile.write(json.dumps({"error": "User not found"}).encode("utf-8"))
except ValueError:
self._set_headers(400)
self.wfile.write(json.dumps({"error": "Invalid user ID"}).encode("utf-8"))
else:
self._set_headers(404)
self.wfile.write(json.dumps({"error": "Not Found"}).encode("utf-8"))
# Main execution block as before, using APIHandler
# ...
இந்த கையாளுநருடன், உங்கள் சேவையகத்தில் இப்போது ஒரு பழமையான ரூட்டிங் அமைப்பு உள்ளது:
/api/users
க்கான GET கோரிக்கை அனைத்து பயனர்களின் பட்டியலை வழங்கும்./api/users/1
க்கான GET கோரிக்கை ஆலிஸின் விவரங்களை வழங்கும்.- வேறு எந்த பாதையும் 404 கிடைக்கவில்லை பிழையை ஏற்படுத்தும்.
கோப்புகளையும் டைனமிக் உள்ளடக்கத்தையும் ஒன்றாக வழங்குதல்
உங்களுக்கு ஒரு டைனமிக் API இருக்க வேண்டும், ஆனால் அதே சேவையகத்திலிருந்து நிலையான கோப்புகளையும் (index.html
போன்றவை) வழங்க விரும்பினால் என்ன செய்வது? உங்கள் தனிப்பயன் பாதைகளுடன் ஒரு கோரிக்கை பொருந்தவில்லை என்றால், SimpleHTTPRequestHandler
இலிருந்து மரபுரிமையாகி அதன் இயல்புநிலை நடத்தைக்கு பிரதிநிதித்துவப்படுத்துவதே எளிதான வழி.
super()
செயல்பாடு இங்கே உங்கள் சிறந்த நண்பர். இது பெற்றோர் வகுப்பின் முறையை அழைக்க உங்களை அனுமதிக்கிறது.
import json
from http.server import SimpleHTTPRequestHandler, HTTPServer
class HybridHandler(SimpleHTTPRequestHandler):
def do_GET(self):
if self.path == '/api/status':
self.send_response(200)
self.send_header('Content-type', 'application/json')
self.end_headers()
response = {'status': 'ok', 'message': 'Server is running'}
self.wfile.write(json.dumps(response).encode('utf-8'))
else:
# For any other path, fall back to the default file-serving behavior
super().do_GET()
# Main execution block as before, using HybridHandler
# ...
இப்போது, அதே கோப்பகத்தில் ஒரு index.html
கோப்பை உருவாக்கி இந்த ஸ்கிரிப்டை இயக்கினால், http://localhost:8080/
ஐப் பார்வையிடுவது உங்கள் HTML கோப்பை வழங்கும், அதே நேரத்தில் http://localhost:8080/api/status
ஐப் பார்வையிடுவது உங்கள் தனிப்பயன் JSON பதிலை வழங்கும்.
பைதான் 2 பற்றிய குறிப்பு (BaseHTTPServer
)
பைதான் 2 இனி ஆதரிக்கப்படாத நிலையில், அதன் HTTP சேவையகத்தின் பதிப்பைப் பயன்படுத்தும் பழைய குறியீட்டை நீங்கள் சந்திக்க நேரிடலாம். கருத்துக்கள் ஒரே மாதிரியானவை, ஆனால் தொகுதி பெயர்கள் வேறுபட்டவை. இங்கே ஒரு விரைவான மொழிபெயர்ப்பு வழிகாட்டி:
- பைதான் 3:
http.server
-> பைதான் 2:BaseHTTPServer
,SimpleHTTPServer
- பைதான் 3:
socketserver
-> பைதான் 2:SocketServer
- பைதான் 3:
from http.server import BaseHTTPRequestHandler
-> பைதான் 2:from BaseHTTPServer import BaseHTTPRequestHandler
முறை பெயர்கள் (do_GET
, do_POST
) மற்றும் முக்கிய தர்க்கம் அப்படியே இருக்கும், இது பழைய ஸ்கிரிப்டுகளை பைதான் 3 க்கு கொண்டு செல்வதை ஒப்பீட்டளவில் நேரடியானதாக ஆக்குகிறது.
உற்பத்தி பரிசீலனைகள்: எப்போது நகர வேண்டும்
பைத்தானின் உள்ளமைக்கப்பட்ட HTTP சேவையகம் ஒரு அற்புதமான கருவி, ஆனால் அதற்கு அதன் வரம்புகள் உள்ளன. இது சரியான தேர்வு எப்போது, மேலும் வலுவான தீர்வுக்கு எப்போது செல்ல வேண்டும் என்பதைப் புரிந்துகொள்வது முக்கியம்.
1. ஒரே நேரத்தில் மற்றும் செயல்திறன்
இயல்பாக, HTTPServer
ஒற்றை இழையாகும், மேலும் கோரிக்கைகளை வரிசையாக செயலாக்குகிறது. ஒரு கோரிக்கையைச் செயலாக்க நீண்ட நேரம் எடுத்தால், அது மற்ற எல்லா உள்வரும் கோரிக்கைகளையும் தடுக்கும். சற்று மேம்பட்ட பயன்பாட்டு நிகழ்வுகளுக்கு, பல-திரிக்கப்பட்ட சேவையகத்தை உருவாக்க socketserver.ThreadingMixIn
ஐப் பயன்படுத்தலாம்:
from socketserver import ThreadingMixIn
from http.server import HTTPServer
class ThreadingHTTPServer(ThreadingMixIn, HTTPServer):
"""Handle requests in a separate thread."""
pass
# In your main block, use this instead of HTTPServer:
# webServer = ThreadingHTTPServer((hostName, serverPort), MyServer)
இது ஒரே நேரத்தில் உதவுவதால், இது இன்னும் அதிக செயல்திறன், அதிக போக்குவரத்து உற்பத்தி சூழல்களுக்காக வடிவமைக்கப்படவில்லை. முழு அளவிலான வலை கட்டமைப்புகள் மற்றும் பயன்பாட்டு சேவையகங்கள் (Gunicorn அல்லது Uvicorn போன்றவை) செயல்திறன், வள மேலாண்மை மற்றும் அளவிடுதலுக்காக மேம்படுத்தப்பட்டுள்ளன.
2. பாதுகாப்பு
http.server
பாதுகாப்பு முதன்மை கவனம் செலுத்தி உருவாக்கப்படவில்லை. கிராஸ்-சைட் ஸ்கிரிப்டிங் (XSS), கிராஸ்-சைட் கோரிக்கை மோசடி (CSRF) அல்லது SQL ஊசி போன்ற பொதுவான வலை பாதிப்புகளுக்கு எதிராக உள்ளமைக்கப்பட்ட பாதுகாப்புகள் இல்லை. Django, Flask மற்றும் FastAPI போன்ற உற்பத்தி-தர கட்டமைப்புகள் இந்த பாதுகாப்புகளை பெட்டியிலிருந்து வழங்குகின்றன.
3. அம்சங்கள் மற்றும் சுருக்கம்
உங்கள் பயன்பாடு வளரும்போது, டேட்டாபேஸ் ஒருங்கிணைப்பு (ORMs), டெம்ப்ளேட் என்ஜின்கள், அதிநவீன ரூட்டிங், பயனர் அங்கீகாரம் மற்றும் இடைநிலை போன்ற அம்சங்களை நீங்கள் விரும்புவீர்கள். http.server
இன் மேல் இதை நீங்களே உருவாக்க முடிந்தாலும், நீங்கள் அடிப்படையில் ஒரு வலை கட்டமைப்பை மறுசீரமைக்கிறீர்கள். Flask, Django மற்றும் FastAPI போன்ற கட்டமைப்புகள் இந்த கூறுகளை நன்கு கட்டமைக்கப்பட்ட, போர்-சோதிக்கப்பட்ட மற்றும் பராமரிக்கக்கூடிய வழியில் வழங்குகின்றன.
இதற்கு http.server
ஐப் பயன்படுத்தவும்:
- HTTP ஐக் கற்றல் மற்றும் புரிந்துகொள்வது.
- விரைவான முன்மாதிரி மற்றும் கருத்தின் சான்று.
- எளிய, உள்-மட்டும் கருவிகள் அல்லது டாஷ்போர்டுகளை உருவாக்குதல்.
- முன்-இறுதி மேம்பாட்டிற்கான மாதிரி API சேவையகங்களை உருவாக்குதல்.
- IoT அல்லது ஸ்கிரிப்டுகளுக்கான இலகுரக தரவு சேகரிப்பு எண்ட்பாயிண்டுகள்.
இதற்கு ஒரு கட்டமைப்பிற்குச் செல்லவும்:
- பொது எதிர்கொள்ளும் வலை பயன்பாடுகள்.
- அங்கீகாரம் மற்றும் தரவுத்தள தொடர்புகளுடன் சிக்கலான APIகள்.
- பாதுகாப்பு, செயல்திறன் மற்றும் அளவிடுதல் ஆகியவை முக்கியமான பயன்பாடுகள்.
முடிவு: எளிமை மற்றும் கட்டுப்பாட்டின் சக்தி
பைத்தானின் http.server
மொழியின் நடைமுறை வடிவமைப்பிற்கு ஒரு சான்றாகும். இது வலை நெறிமுறைகளுடன் பணிபுரியும் எவருக்கும் ஒரு எளிய மற்றும் சக்திவாய்ந்த அடித்தளத்தை வழங்குகிறது. அதன் கோரிக்கை கையாளுநர்களைத் தனிப்பயனாக்கக் கற்றுக்கொள்வதன் மூலம், கோரிக்கை-பதில் சுழற்சியின் மீது நீங்கள் சிறந்த கட்டுப்பாட்டைப் பெறுவீர்கள், இது முழு வலை கட்டமைப்பின் மேல்நிலையின்றி பலவிதமான பயனுள்ள கருவிகளை உருவாக்க உதவுகிறது.
அடுத்த முறை உங்களுக்கு விரைவான வலை சேவை, ஒரு மாதிரி API தேவைப்படும்போது அல்லது HTTP உடன் பரிசோதனை செய்ய விரும்பினால், இந்த பல்துறை தொகுதியை நினைவில் கொள்ளுங்கள். இது ஒரு கோப்பு சேவையகத்தை விட அதிகம்; இது உங்கள் வலை அடிப்படையிலான படைப்புகளுக்கான வெற்று கேன்வாஸ் ஆகும், இது பைதான் நிலையான நூலகத்தில் உள்ளது.