> 백엔드 개발 > 파이썬 튜토리얼 > python在不用框架的情况下如何写网站后台?

python在不用框架的情况下如何写网站后台?

WBOY
풀어 주다: 2016-06-06 16:24:08
원래의
1935명이 탐색했습니다.

python在不用框架的情况下如何写网站后台

回复内容:

python标准库中的basehttpserver适合你,阅读下源码你就知道了 Django的翻译文档有这么一段话:

如果你曾编写过网络应用程序。 那么你很有可能熟悉之前我们的 CGI 例子。
从头开始编写网络应用程序。
从头编写另一个网络应用程序。
从第一步中总结(找出其中通用的代码),并运用在第二步中。
重构代码使得能在第 2 个程序中使用第 1 个程序中的通用代码。
重复 2-4 步骤若干次。
意识到你发明了一个框架。
这正是为什么 Django 建立的原因!

你不用框架最后还不是得实现框架,是吧。何必重复造轮子,当然如果是将马车升级为汽车,那就不是造轮子了。
可以去看看廖雪峰的教程,他就是自己实现的框架,还有例程很详细 推荐 Python教程 - 廖雪峰的官方网站 别说你不用框架的情况下读了这个能写,连还不懂 Python 读完都能写。 看看这个A Do-It-Yourself Framework 可以尝试使用 WSGI,类似 Java 的 servlet ,只是定义了一套框架与服务器交互的接口规范,参考 PEP 333 -- Python Web Server Gateway Interface v1.0

写出来最简单的应用是这样的:
<code class="language-python"><span class="k">def</span> <span class="nf">simple_app</span><span class="p">(</span><span class="n">environ</span><span class="p">,</span> <span class="n">start_response</span><span class="p">):</span>
    <span class="n">status</span> <span class="o">=</span> <span class="s">'200 OK'</span>
    <span class="n">response_headers</span> <span class="o">=</span> <span class="p">[(</span><span class="s">'Content-type'</span><span class="p">,</span> <span class="s">'text/plain'</span><span class="p">)]</span>
    <span class="n">start_response</span><span class="p">(</span><span class="n">status</span><span class="p">,</span> <span class="n">response_headers</span><span class="p">)</span>
    <span class="k">return</span> <span class="p">[</span><span class="s">'Hello world!</span><span class="se">\n</span><span class="s">'</span><span class="p">]</span>
</code>
로그인 후 복사
Python自带CGI库,就叫cgi

写法类似几十年前的perl写网站。你需要自己处理session、cookie,以及URL routing。

性能也是不行的:每个http请求对应一次python脚本执行。

学习一下可以,不要自虐了。PHP可以这么干是因为PHP本身除了语言之外还有一个随语言自带的web framework(见过哪个语言有session_start类似的函数?) flask、bottle、tornado这种微框架也不行么?
那werkzeug呢?
比如uwsgi+werkzeug+自己实现wsgi application
flask不就是包装werkzeug的wsgi application么
再加个按需指定的数据库模块、session模块什么的

werkzeug也嫌大的话,那需要实现的东西就有点多了吧,http解析、url解析、url route等等,那就有点划不来了吧 CGI? 实现wsgi即可,但。。。你真的不需要框架吗 怎么可能不用框架,早晚你都会自己写出一个框架
관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿