python web学习
Web
http.server
最简单的,一句命令搞定:
# python -m http.server 8001
然后一个常见的文件目录下载竟然就搞定了,太神奇了;
WSGI接口
Web Server Gateway Interface:
from wsgiref.simple_server import make_server def application(environ, start_response, elseif=None): """ 这样已经有模有样了哈,可以区分路由了,但是每个path都要自己if elif转发 而且如果是post,是不是还得参数转发, 那么这些重复固定的事儿,web框架肯定可以的 """ start_response('200 OK', [('Content-Type', 'text/html')]) method = environ['REQUEST_METHOD'] path = environ['PATH_INFO'] print("method: ", method) print("path: ", path) if path=="/": return handle_home() elif path == "/test": return handle_test() return [b'404, url is not mapped
'] def handle_home(): return [b'welcome home'] def handle_test(): return [b'test page']
Web框架
- web.py:一个小巧的Web框架;
- Flask:轻量级web框架;
- Django:全能型Web框架;
- Bottle:和Flask类似的Web框架;
- Tornado:Facebook的开源异步Web框架。
Web.py
xxx
Flask
haha
Django
Xx
使用模板渲染
在python接口内返回整个html代码显然是不科学的,也是做不到的,这时就需要先定义好前端html模板,然后py接口只return占位符,替换该替换的东东:
React or vue
模板应该使用的是MVC思想,但是这样写前端还是不舒服,不好组件复用,复用自己的模板还好,但是用别人的前端插件作为模板呢,似乎就很难了;
如果用react,很有前端也是面向对象的感觉,可以组件复用,但是结构就和模板不一样了。前后端交互也变成了json格式的数据交互。
Code
https://gitee.com/loveCode666/learnPython/tree/master/study/basic_grammar/web