Python 面试题
1. 解释 Django 和 Flask 的区别,并给出一个 Flask 的简单 REST API 示例
回答:
- Django:全栈框架,内置 ORM、Admin、模板引擎,适合复杂应用,约定优于配置。
- Flask:轻量级框架,灵活,需手动集成组件,适合小型项目或微服务。
代码示例:
from flask import Flask, jsonify, request
app = Flask(__name__)
@app.route('/api/greet', methods=['POST'])
def greet():
data = request.get_json()
name = data.get('name', 'Guest')
return jsonify({
'message': f'Hello, {
name}!'})
if __name__ == '__main__':
app.run(debug=True)
2. 如何在 Django 中实现用户认证?
回答:
Django 内置 django.contrib.auth
模块,提供用户模型、登录/登出视图、权限系统。
示例:
from django.contrib.auth.decorators import login_required
@login_required
def protected_view(request):
return HttpResponse("Only logged-in users can see this.")
3. 什么是 ORM?写一个 Django ORM 查询示例
回答:
ORM(对象关系映射)将数据库表映射为 Python 类,通过操作对象实现数据库交互。
示例: