面试题答案
一键面试1. Django 各部分与 MVC 角色的对应
- Model:对应 MVC 中的 Model。在 Django 中,Model 负责与数据库交互,定义数据的结构和行为,它代表了应用程序的数据层。比如定义一个
Book
模型类,包含书名、作者、出版日期等字段,这就是在描述数据的结构。 - View:对应 MVC 中的 Controller。在 Django 里,View 接收 HTTP 请求,处理业务逻辑,决定返回给客户端什么样的响应。例如,一个处理用户登录的视图函数,会接收用户提交的用户名和密码,验证其合法性,然后决定是返回登录成功页面还是错误提示。
- Template:对应 MVC 中的 View。Template 负责将数据呈现给用户,它定义了页面的布局和样式,通过模板语法将数据填充到相应位置。比如在一个显示文章列表的模板中,通过模板标签循环展示文章的标题、摘要等信息。
2. 协作实现 Web 应用功能
- 请求处理:当用户在浏览器中输入 URL 发起请求,Django 的 URL 调度器根据请求的 URL 模式匹配到相应的 View 函数或类视图。
- 业务逻辑处理:对应的 View 函数或类视图被调用,在视图中会调用 Model 来获取或操作数据。例如,查询数据库获取用户信息、添加新的订单记录等。视图根据业务逻辑进行处理,可能会进行数据验证、计算等操作。
- 数据传递给模板:处理完业务逻辑后,视图将需要展示的数据传递给 Template。这些数据可以是从数据库中获取的对象列表、计算后的结果等。
- 模板渲染:Template 接收到数据后,根据定义好的模板语法进行渲染,将数据填充到页面的相应位置,生成最终的 HTML 内容。
- 响应返回:渲染后的 HTML 内容作为响应返回给客户端浏览器,用户就能看到呈现出来的页面。