第9章 py web框架考察点

第9章 py web框架考察点,第1张

概述py WSGI与web框架常考点 考点聚焦 WSGI, 常见Web框架 常用的py web框架Django/Flask/Tornado对比 Web框架的组成(淡化框架,加强基础) 什么是WSGI? Python Web Server Gateway Interface(PEP 333) 解决Python Web Server乱象mod_python, CGI, FastCGI等 描述Web Ser

py Wsgi与web框架常考点

考点聚焦

Wsgi,常见Web框架

常用的py web框架Django/Flask/Tornado对比

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

什么是Wsgi?

Python Web Server Gateway Interface(PEP 333)

解决Python Web Server乱象mod_python,CGI,FastCGI等

描述Web Server(Gunicorn/uWsgi)如何与web框架交互, Web框架如何处理请求

def application(environ,start_response)* application 是Wsgi app,一个可调用对象*参数   *environ: 一个包含Wsgi环境信息的字典,由Wsgi服务器提供,常见的key有PATH_INFO,query_STRING等   *start_response: 生成Wsgi响应的回调函数,接收两个参数,status 和 headers*函数返回响应体的迭代器def myapp(environ,start_response):   status = '200 OK'   headers = [('Content-Type','text/HTML; charset=utf8')]   start_response(status,headers)   return [b'<h1>Hello World</hl>']    #可迭代对象,返回字节if __name__ == '__main__':   from wsgiref.simple_server import make_server   httpd = make_server('127.0.0.1',8888,myapp)
#一个简单的兼容Wsgi的web应用#导入py内置的Wsgi serverfrom wsgiref.simple_server import make_serverdef applicaiton(environ,start_response):    status = '200 OK'    headers =     [        ('Content-Type','text/HTML; charset=utf8')    ]    start_response(status,headers)    return [b"<h1>Hello,World!</h1>"]if __name__ == '__main__':    httpd = make_server('127.0.0.1',8000,application)    httpd.serve_forever()

常用的py web框架对比

? Django vs Flask vs Tornado

? Django: 大而全,内置ORM,admin等组件,第三方插件较多

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

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

什么是MVC?

? MVC: 模型(model) 视图(VIEw) 控制器(Controller)

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

? VIEw:负责与用户的交互展示

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

什么是ORM?

? Object Relational MapPing,对象关系映射

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

sqlalchemy Django ORM peewee

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

Web安全常考点

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

sql注入

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

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

什么是sql注入?

sql注入与防范

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

未对输入进行过滤,直接动态拼接sql产生

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

如何防范sql注入?

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

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

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

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

什么是XSS?

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

恶意用户将代码植入到提供给其它用户使用的页面中,

未经转义的恶意代码输出到其它用户的浏览器被执行

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

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

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

考点聚焦

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

前后端分离的意义和方式

什么是RESTful

如何设计RESTful API

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

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

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

前后端同步开发,提升工作效率,定义好接口规范

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

什么是RESTful

Representational State Transfer

表现层状态转移,由http协议的主要设计者Roy FIElding提出

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

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

三个名词的解释:

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

Representation(表现层):资源的表现形式,eg: 图片, HTML文本等

State Transfer(状态转化):GET,POST PUT DELETE http动词来 *** 作资源

? 实现资源状态的改变

RESTful的准则

设计概念和准则

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

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

对资源的 *** 作不会改变资源的标识

什么是RESTful API?

RESTful风格的API接口

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

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

一般使用JsON格式返回数据

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

如何设计RESTful API?

http方法 URL 动作
GET http://[hostname]/api/users 检索用户列表
GET http://[hostname]/api/users/[user_id] 检索单个用户
POST http://[hostname]/api/users 创建新用户
PUT http://[hostname]/api/users/[user_id] 更新用户信息
DELETE http://[hostname]/api/users/[user_id] 删除用户

web框架和web安全思考题

? 什么是httpS?

? http和httpS的区别?

? 什么是对称加密和非对称加密?

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

总结

以上是内存溢出为你收集整理的第9章 py web框架考察点全部内容,希望文章能够帮你解决第9章 py web框架考察点所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1031468.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-23
下一篇 2022-05-23

发表评论

登录后才能评论

评论列表(0条)

保存