Interview question
How do you handle routing and URL patterns in web frameworks? Web frameworks में routing और URL patterns कैसे handle करते हैं?
Answer
# Flask routing
from flask import Flask
app = Flask(__name__)
# Basic route
@app.route('/home')
def home():
return 'Home Page'
# Route with parameters
@app.route('/user/<username>')
def user(username):
return f'User: {username}'
# Route with multiple parameters
@app.route('/post/<int:post_id>')
def post(post_id):
return f'Post ID: {post_id}'
# HTTP methods
@app.route('/submit', methods=['GET', 'POST'])
def submit():
if request.method == 'POST':
return 'Form submitted'
return 'Submit form'
# Django URL patterns
from django.urls import path, re_path
from . import views
urlpatterns = [
path('home/', views.home, name='home'),
path('user/<str:username>/', views.user, name='user'),
path('post/<int:post_id>/', views.post, name='post'),
re_path(r'^article/(?P<year>[0-9]{4})/$', views.article),
]
# FastAPI routing
from fastapi import FastAPI
app = FastAPI()
@app.get('/home')
async def home():
return {'page': 'Home'}
@app.get('/user/{username}')
async def user(username: str):
return {'username': username}
@app.get('/post/{post_id}')
async def post(post_id: int):
return {'post_id': post_id}
@app.post('/submit')
async def submit(data: dict):
return {'status': 'submitted', 'data': data}
# URL parameter types
# - str: String (default)
# - int: Integer
# - float: Float
# - path: Path including '/'
# - uuid: UUID
# - bool: BooleanFlask:
@app.route('/path/<parameter>')
Django:
path('path/<type:name>/', views.function)
FastAPI:
@app.get('/path/{parameter}')
Parameter types:
- str: String
- int: Integer
- float: Float
- path: Include slashesWas this answer clear?