第9章 Python Web 框架考察点

python

Python WSGI与web框架常考点

WSGI 常见Web框架

◆什么是WSGI?

◆常用的 Python Web框架Dang/Fask/Tornado对比

◆web框架的组成(淡化框架,加强基础)

什么是WSGI?

什么是WSGI?为什么需要它?

经常使用uwsgi/gunicorn

部署 Django/Flask应用

 

为什么Flask/Django都可以运行在 gunicorn之上?

 

◆Python Web Server Gateway Interface(pep3333)

◆解决 Python Web Server乱象 mod_python, CGI, FastcGI等

◆描述了 Web Server(gunicorn/uWSGI)如何与web框架(Flask/Django)交互,Web框架如何处理请求

 

 

 

 

 

一个简单的兼容WSGI的web应用

运行web应用

常用的 Python Web框架对比

Django vs Flask vs Tornado

◆ Django:大而全,内置ORM、 Admin等组件,第三方插件较多

◆ Flask:微框架,插件机制,比较灵活

 

cookiecutter-flask

生成统一的项目模板

◆ Tornado:异步支持的微框架和异步网络库

什么是MVC?

MVC:模型(Model),视图(View),控制器(Controller)

解耦数据、展示和操作

 

◆ Model:负责业务对象和数据库的交互(ORM)

◆ VieW:负责与用户的交互展示

◆ Controller:接收请求参数调用模型和视图完成请求

 

 

Object Relational Mapping,对象关系映射

◆用于实现业务对象与数据表中的字段映射

Sqlalchemy

Django ORM

Peewee

 

◆优势:代码更加面向对象,代码量更少,灵活性高,提升开发效率

 

 

Web安全常考点

常见的web安全问题,原理和防范措施。安全意识

◆SQ注入

◆XSS(跨站脚本攻击, Cross-Site Scripting)

◆CSRF(跨站请求伪造, Cross-site request forgery)

 

什么是SQL注入?

SQL注入与防范

◆通过构造特殊的输入参数传入Web应用,导致后端执行了恶意SQL

◆通常由于程序员未对输入进行过滤,直接动态拼接SQL产生

◆可以使用开源工具 sqlmap, SQLninja检测

 

 

 

 

拼接sql 导致

 

 

 

 

解决办法

 

如何防范SQL注入?

Web安全一大原则:永远不要相信用户的任何输入

◆对输入参数做好检査(类型和范围);过滤和转义特殊字符

◆不要直接拼接sql,使用ORM可以大大降低sql注入风险

◆数据库层:做好权限管理配置;不要明文存储敏感信息

什么是XSS?

Xss( Cross Site Scripting),跨站脚本攻击

◆恶意用户将代码植入到提供给其他用户使用的页面中,未经转义的恶意代码输岀到其他用户的浏览器被执行

◆用户浏览页面的时候嵌入页面中的脚本(js)会被执行,攻击用户

◆主要分为两类:反射型(非持久型),存储型(持久型)

 

 

 

 

 

 

 

XSS危害

XSS可以利用js实现很多危害巨大的操作

◆盗用用户 cookie,获取敏感信息

 

 

前后端分离与RESTful常见面试题

什么是前后端分离?什么是 RESTful

◆前后端分离的意义和方式

◆什么是 RESTfUl

◆如何设计 RESTful API

 

 

什么是前后端分离?有哪些优点?

后端只负责提供数据接口,不再渲染模板,前端获取数据并呈现

◆前后端解耦,接口复用(前端和客户端公用接口),减少开发量

◆各司其职,前后端同步开发,提升工作效率。定义好接口规范

◆更有利于调试(mock)、测试和运维部署

不好做SEO

 

 

什么是 RESTful

Representational State Transfer

◆表现层状态转移,由HTTP协议的主要设计者RoyFielding提出

◆资源( Resources),表现层( Representation),状态转化(State Transfer)

◆是一种以资源为中心的web软件架构风格,可以用Ajax和 RESTful web服务构建应用

 

 

RESTful解释

三个名词的解释

◆ Resources(资源):使用URI指向的一个实体

◆ Representation(表现层):资源的表现形式,比如图片、HTML文本等

◆ State Transfer(状态转化):GET、POST、PUT、 Delete Http 动词来操作资源,实现资源状态的改变

 

RESTful 的准则

设计概念和准则

◆所有事物抽象为资源(resource),资源对应唯一的标识(identifier)

◆资源通过接口进行操作实现状态转移,操作本身是无状态的

◆对资源的操作不会改变资源的标识

 

把HTTP动词语义和数据库的增删改查结合到一起

 

 

什么是 RESTful API

RESTful 风格的API接口

◆ 通过 Http GET/POST/PUT/DELETE    获取/新建/更新删除 资源

◆ 一般使用JSON格式返回数据

◆ 一般web框架都有相应的插件支持 RESTful API

 

如何设计 RESTful API?

 

 

 

 

Web框架和Web安全思考题

什么是 Https?

中高级考点:HTTP和Https的区别

◆Https和HTTP的区别是什么?

◆你了解什么是对称加密和非对称加密吗?

◆HTPS的通信过程是什么样的?你能否用 Wireshark抓包观察

<wiz_tmp_tag >

 

 

 

 

以上是 第9章 Python Web 框架考察点 的全部内容, 来源链接: utcz.com/z/388634.html

回到顶部