Python学习笔记(3):web初步
来源:互联网 发布:佛山专业网络推广公司 编辑:程序博客网 时间:2024/06/04 18:09
1、使用Python web可以快速构建一个网站,相对于Javaweb或者PHP,代码量减少了很多。使用Pythonweb需要提前下载tornado模块,方法很多,能正常使用即可
3、获取网页信息
下一步,直接获取信息
结果为doubleevil
user-info.html
(3)类似SpringMVC
2、构建会话服务器:基本就是TCP链接,具体内部如何实现,不清楚,相对于c++的socket编程,确实减少了很多需要声明的东西。但微软的那一套socket编程学的很蛋疼,过于接近硬件了,所以能学会的几乎也比常人更多一些。
下面是服务端:
import socketcomms_socket=socket.socket()comms_socket.bind(('localhost',50000))comms_socket.listen(10)connection,address=comms_socket.accept()while True:print(connection.recv(4096).decode("UTF-8"))send_data=input("Reply:")connection.send(bytes(send_data,"UTF-8"))
下面是客户端:
import socketcomms_socket=socket.socket()comms_socket.connect(('localhost',50000))while True:send_data=input("send: ")comms_socket.send(bytes(send_data,"UTF-8"))print(comms_socket.recv(4096).decode("UTF-8"))
3、获取网页信息
需要注意的是,下面是针对Python3而言
import urllib.request, jsonimport http.server, ostry:url="http://php.weather.sina.com.cn/xml.php?city=%B1%B1%BE%A9&password=DJOYnieT8234jlsK&day=0"req=urllib.request.Request(url)forecast_string= urllib.request.urlopen(req).read()forecast_dict=json.loads(forecast_string.decode("UTF-8"))print(forecast_dict)except Exception:raiseelse:passfinally:pass
如果需要转换为json,如下
先用Python构建一个最简单的网站,返回一个json数据
import tornado.ioloopimport tornado.webimport jsondata={'name':'doubleevil'}data_json=json.dumps(data)class MainHandler(tornado.web.RequestHandler):def get(self):self.write(data_json)if __name__=="__main__":application=tornado.web.Application([(r"/",MainHandler),],)application.listen(8888)tornado.ioloop.IOLoop.instance().start()
下一步,直接获取信息
import urllib.requestimport jsonurl="http://127.0.0.1:8888"req=urllib.request.Request(url)result_string=urllib.request.urlopen(req).read()result_dict=json.loads(result_string.decode("UTF-8"))print(result_dict["name"])
结果为doubleevil
4、网站
(1)最简单的网站,只有helloworld
import tornado.ioloopimport tornado.webclass MainHandler(tornado.web.RequestHandler):def get(self):self.write("<html>helloworld"+"</html>")if __name__=="__main__":application=tornado.web.Application([(r"/",MainHandler),],)application.listen(8888)tornado.ioloop.IOLoop.instance().start()(2)改进版
import tornado.ioloopimport tornado.webclass MainHandler(tornado.web.RequestHandler):def get(self):self.write("<html>hello,index+"+"</html>")class HelloHandler(tornado.web.RequestHandler):def get(self):self.render("/Users/shangguyi/Desktop/user-info.html")def post(self):self.render("index.html",name=self.get_argument("name"))if __name__=="__main__":application=tornado.web.Application([(r"/",MainHandler),(r"/hello/",HelloHandler)],)application.listen(8888)tornado.ioloop.IOLoop.instance().start()
user-info.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title>Untitled Document</title> </head> <body> <form action="/hello/" method="post"> enter your name:<input type="text" name="name"> <input type="submit" value="Sign in"> </form> </body></html>
(3)类似SpringMVC
import tornado.ioloopimport tornado.webclass MainHandler(tornado.web.RequestHandler):def get(self,name_in):self.name=name_inself.render("/Users/shangguyi/Desktop/index.html",name=self.name)if __name__=="__main__":application=tornado.web.Application([(r"/(.*)",MainHandler),],)application.listen(8888)tornado.ioloop.IOLoop.instance().start()
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title>Untitled Document</title> </head> <body> Welcome:{{ name }} </body></html>
0 0
- Python学习笔记(3):web初步
- python的初步学习笔记
- Python Web开发 之Django框架入门学习笔记(一)——安装和初步使用
- python学习笔记三(网络编程初步)
- Python Web 开发学习 - 学习笔记(3)- 解释器
- PCIe学习笔记(3)---PCIe初步
- Python初步学习(1)
- Python初步学习(2)
- Python之学习笔记(web服务)
- 《Python基础教程》学习笔记(15Web)
- Python Web 开发学习 - 学习笔记(1)- Python特性
- Python Web 开发学习 - 学习笔记(2)- 启动Python
- Python学习笔记 web开发
- Python学习笔记-web开发
- web Service 初步学习(1)
- web初步学习之标签(1)
- python初步笔记
- Python学习笔记-Python跟web开发
- 有关java内存泄露
- 黑马程序员---Java基础---双列集合Map(接口)
- oc中new和init的区别
- iOS基础: navigationController.popToViewController的使用
- 前进道路上的收获历程
- Python学习笔记(3):web初步
- 23种设计模式C++实例之代理模式
- Mac新手——文件存放
- Objective-c语言_不可变字典
- SQL * Loader详解
- django1.4 文档
- swift 学习笔记
- VS2008 ODBC方式连接Mysql7.9
- android ScrollView嵌套RecyclerView