8个问题

本文深入探讨了跨域的概念与解决方案,详细解释了301和302重定向的区别,介绍了前端UI框架layui,展示了不同程序共用同一数据库的方法,解析了Django表名自定义技巧,推荐了数据库查询软件DG,揭示了对象取值与赋值的内部机制,阐述了with语句的工作原理,最后对比分析了CGI、FastCGI及WSGI三种网关协议的特点与优劣。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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 沟通的。
 

 

 

​​​

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值