1.跨域 什么是跨域 如何解决?
跨域,指的是浏览器不能执行其他网站的脚本。它是由浏览器的同源策略造成的,是浏览器施加的安全限制。
所谓同源是指,域名,协议,端口均相同,举例:
http://www.123.com/index.html 调用 http://www.123.com/server.php (非跨域)
http://www.123.com/index.html 调用 http://www.456.com/server.php (主域名不同:123/456,跨域)
http://abc.123.com/index.html 调用 http://def.123.com/server.php (子域名不同:abc/def,跨域)
http://www.123.com:8080/index.html 调用 http://www.123.com:8081/server.php (端口不同:8080/8081,跨域)
http://www.123.com/index.html 调用 https://www.123.com/server.php (协议不同:http/https,跨域)
请注意:localhost和127.0.0.1虽然都指向本机,但也属于跨域。
解决方法:
安装django-cors-headers模块
在settings.py中配置
# 注册app
INSTALLED_APPS = [
...
'corsheaders'
]
# 添加中间件
MIDDLEWARE = [
...
'corsheaders.middleware.CorsMiddleware'
]
# 允许跨域源
CORS_ORIGIN_ALLOW_ALL = True
2.301和302的区别
301 永久重定向 被请求的资源已永久移动到新位置,并且将来任何对此资源的引用都应该使用本响应返回的若干个 URI 之一
302 临时重定向 请求的资源现在临时从不同的 URI 响应请求
302重定向只是暂时的重定向,搜索引擎会抓取新的内容而保留旧的地址,因为服务器返回302,所以,搜索搜索引擎认为新的网址是暂时的。
而301重定向是永久的重定向,搜索引擎在抓取新的内容的同时也将旧的网址替换为了重定向之后的网址。
nginx配置:
rewrite后面接上permenent就代表301跳
rewrite后面接上redirect就代表302跳
3.layui
layui(谐音:类UI) 是一款采用自身模块规范编写的前端 UI 框架
4.不同的程序可以用同一数据库
5.django如何定义表名:
class Meta:
db_table = '新表名'
6.DG软件(类似于navivat)
数据库查询软件
7.对象['xx'] 取值,会触发哪个方法?
对象['xx'] =10 设置值,会触发哪个方法?
__getitem__
对象['xx'] 触发
应用
在取session['a1']的值的时候会触发该方法
所有对象['x1']都会触发,需要自己定义才能够运行
__setitem__
在对象['xxx']=1 触发
8.with触发的时哪个方法
__enter__ 和 __exit__方法
__enter__(self):当with开始运行的时候触发此方法的运行
__exit__(self, exc_type, exc_val, exc_tb):当with运行结束之后触发此方法的运行
9.网关协议
CGI:通用网关协议
通用网关接口(Common Gateway Interface/CGI),可以让浏览器向服务器上的程序请求数据。
CGI 是一种服务器和后端可执行程序之间的交互标准
优点
CGI 的优点也就是它的作用了。CGI 程序提供了很多静态网页无法实现的功能,比如加载数据、数据运算等等。早期的动态网页基本都是基于 CGI 实现的。缺点
在 CGI 协议下,解析器的反复加载是性能低下的主要原因。每个发送到服务器的请求,都需要经过『启动进程、处理请求、结束进程』三个步骤,所以当访问量增大时,系统资源的开销也会增大,导致服务器性能下降甚至服务中断。
FastCGI(快速通用网关协议):
快速通用网关接口(Fast Common Gateway Interface/FastCGI)是一种让交互程序与Web服务器通信的协议。FastCGI是早期通用网关接口(CGI)的增强版本。
FastCGI致力于减少网页服务器与CGI程序之间互动的开销,从而使服务器可以同时处理更多的网页请求。优点
除了继承 CGI 原有的优点之外, FastCGI 还有以下特点:
- 业务分离:FastCGI 后端和 Web Server 运行在不同的进程中,后端的故障不会导致 Web Server 停止服务。
- 分布式计算:由于 FastCGI 服务器是可以独立运行的,所以 FastCGI 程序可以在服务器以外的主机上执行,并且接受来自其它服务器的请求。
- 多个可扩展角色:在 FastCGI 中,程序被赋予明确的角色,例如响应器角色、认证器角色、过滤器角色等等。
WSGI(Python Web服务网关接口) :
Web服务器网关接口(Python Web Server Gateway Interface,缩写为WSGI)是为Python语言定义的Web服务器和Web应用程序或框架之间的一种简单而通用的接口。自从WSGI被开发出来以后,许多其它语言中也出现了类似接口。
WSGI 中存在两种角色:接受请求的 Server 和处理请求的 Application,它们底层是通过 FastCGI 沟通的。