面试题答案
一键面试场景一:根据用户请求方法判断
在Flask框架中,可能需要根据用户请求的方法(如GET或POST)来执行不同的逻辑。
from flask import Flask, request
app = Flask(__name__)
@app.route('/submit', methods=['GET', 'POST'])
def submit():
if request.method == 'POST':
data = request.form.get('data')
return f"Received POST data: {data}"
else:
return "This is a GET request. Please use POST to submit data."
if __name__ == '__main__':
app.run(debug=True)
场景二:根据用户权限判断
假设用户登录后,有不同的权限,根据权限展示不同内容。以Django为例,首先假设已经有用户模型和权限判断函数has_admin_permission
。
from django.http import HttpResponse
from django.shortcuts import render
from django.contrib.auth.decorators import login_required
def has_admin_permission(user):
# 这里只是示例,实际可能从数据库或其他地方判断权限
return user.is_superuser
@login_required
def dashboard(request):
if has_admin_permission(request.user):
return HttpResponse("Welcome, Admin! This is the admin dashboard.")
else:
return HttpResponse("Welcome! This is the regular user dashboard.")
场景三:根据请求参数判断
在Flask中,根据请求的参数值来返回不同的结果。
from flask import Flask, request
app = Flask(__name__)
@app.route('/')
def index():
mode = request.args.get('mode')
if mode == 'detail':
return "Showing detailed information."
elif mode =='summary':
return "Showing summary information."
else:
return "Please provide a valid'mode' parameter (detail or summary)."
if __name__ == '__main__':
app.run(debug=True)