Python的崛起:探索编程新浪潮

发表时间: 2023-11-28 18:58

在技术开发这一行业中有许多门编程语言,而Python编程语言更是其中备受青睐的一款。这款语言简洁易用,功能强大,适用于很多的场景,比如网络开发:Python可以用于构建Web应用程序、API接口、网络爬虫等。


作为一名程序员,我近期也在学习Python这门编程语言,但是其中在部署Django程序时一直403的报错,上网查找了一下就是说我Origin checking failed。


于是我又到网上查询有关python在部署Django方面的文章,在GitHub上我看到了Python-weekly,我想着这会不会有比较详细的python介绍呢,抱着尝试的心态进去尝试。


我在空闲的时间去体验了一下,跟大家分享一下我自己的体验经历。


点开来后就是看到目录,然后我就慢慢的往下滑去寻找自己需要的关于Django部署报错的案例,发现没有关于Django部署的文章,但是有一个标题吸引我:“应该如何处理程序的错误”。我就好奇的点了进去。

发现它第二段就标识着“调试Django中CSRF失败/403禁止错误”,然后我就点了进去

1.首先它的文章给我分析了各种可能出现的类型报错,我很幸运,第一个案例就是说我现在出现的错误。

2.我往下找要怎么去解决的方法,之后我按照它的步骤一步一步的往下走。先在Django源文件中找到这行代码

REASON_BAD_ORIGIN = "Origin checking failed - %s does not match any trusted origins."

3.有了一个常量,我可以在代码库中搜索它,找到所有各种用法

# Reject the request if the Origin header doesn't match an allowed# value.if "HTTP_ORIGIN" in request.META:if not self._origin_verified(request):return self._reject(request, REASON_BAD_ORIGIN % request.META["HTTP_ORIGIN"])

4.找到后,但我仍然不知道“经过验证”的起源意味着什么,跟着它的步骤进行定义。

def _origin_verified(self, request):request_origin = request.META["HTTP_ORIGIN"]try:good_host = request.get_host()except DisallowedHost:passelse:good_origin = "%s://%s" % ("https" if request.is_secure() else "http",good_host,)if request_origin == good_origin:return Trueif request_origin in self.allowed_origins_exact:return Truetry:parsed_origin = urlparse(request_origin)except ValueError:return Falserequest_scheme = parsed_origin.schemerequest_netloc = parsed_origin.netlocreturn any(is_same_domain(request_netloc, host)for host in self.allowed_origin_subdomains.get(request_scheme, ()))

在我以为都大功告成的时候又出现了URL错误,它还有后续,说明它跟我一样也是出现了同样的错误,它给出了两种提示,但是我两种都尝试了

5.请求的来源不是有效的URL

try:parsed_origin = urlparse(request_origin)except ValueError:return False

6.请求的来源不是允许的来源子域

return any(is_same_domain(request_netloc, host)for host in self.allowed_origin_subdomains.get(request_scheme, ()))

原来是这样,我的Django终于部署上去了,困扰了我那么久了问题被解决了,心情很好会有一种成就感。

如今在我空闲的时候我还是会上python-weekly,不仅是学习python知识,同时还可以看一些视频和热门话题等等。

如果你在学习python过程中也遇到一些难题,欢迎来尝试体验一下!