python必学_Python必学框架
flask [微型網絡開發框架]
# http://dormousehole.readthedocs.org/en/latest/
# html放在 ./templates/ js放在 ./static/
request.args.get(‘page’, 1) # 獲取參數 ?page=1
request.json # 獲取傳遞的整個json數據
request.form.get(“host”,’127′) # 獲取表單值
簡單實例 # 接收數據和展示
import MySQLdb as mysql
from flask import
app =
db.autocommit(True)
c = db.cursor()
“””
CREATE TABLE `statusinfo` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`hostname` varchar(32) NOT NULL,
`load` float(10) NOT NULL
`time` int(15) NOT NULL,
`memtotal` int(15) NOT NULL,
`memusage` int(15) NOT NULL,
`memfree` int(15) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=161
“””
@app.route(“/collect”, methods=[“GET”, “
def collect():
sql = “”
if request.method == “
data = request.json # 獲取傳遞的json
hostname = data[“Host”]
load = data[“LoadAvg”]
time = data[“Time”]
memtotal = data[“MemTotal”]
memusage = data[“MemUsage”]
memfree = data[“MemFree”]
try:
sql = “INSERT INTO `statusinfo` (`hostname`,`load`,`time`,`memtotal`,`memusage`,`memfree`) VALUES(‘%s’, %s, %s, %s, %s, %s);” % (hostname, load,time,memtotal,memusage,memfree)
ret = c.execute(sql)
return ‘ok’
except mysql.IntegrityError:
return ‘errer’
@app.route(“/show”, methods=[“GET”, “POST”])
def show():
try:
hostname = request.form.get(“hostname”) # 獲取表單方式的變量值
sql = “SELECT `load` FROM `statusinfo` WHERE hostname = ‘%s’;” % (hostname)
c.execute(sql)
ones = c.fetchall()
return render_template(“sysstatus.html”, data=ones, sql = sql)
except:
print ‘hostname null’
from flask import render_template
@app.route(“/xxx/“)
def hello_xx(name):
return render_template(“sysstatus.html”, name=’teach’)
if __name__ == “__main__”:
app.run(host=”0.0.0.0″, port=50000, debug=True)
twisted [非阻塞異步服務器框架]
# 用來進行網絡服務和應用程序的編程。雖然 Twisted Matrix 中有大量松散耦合的模塊化組件,但該框架的中心概念還是非阻塞異步服務器這一思想。對于習慣于線程技術或分叉服務器的開發人員來說,這是一種新穎的編程風格,但它卻能在繁重負載的情況下帶來極高的效率。
pip install twisted
from twisted.internet import protocol, reactor, endpoints
class Echo(protocol.Protocol):
def dataReceived(self, data):
self.transport.write(data)
class EchoFactory(protocol.Factory):
def buildProtocol(self, addr):
return Echo()
endpoints.serverFromString(reactor, “tcp:1234”).listen(EchoFactory())
reactor.run()
greenlet [微線程/協程框架]
# 更加原始的微線程的概念,沒有調度,或者叫做協程。這在你需要控制你的代碼時很有用。你可以自己構造微線程的 調度器;也可以使用”greenlet”實現高級的控制流。例如可以重新創建
pip install greenlet
tornado [極輕量級Web服務器框架]
# 高可伸縮性和epoll非阻塞IO,響應快速,可處理數千并發連接,特別適用用于實時的Web服務
# http://www.tornadoweb.cn/documentation
pip install tornado
import tornado.ioloop
import tornado.web
class MainHandler(tornado.web.RequestHandler):
def get(self):
self.write(“Hello, world”)
application = tornado.web.Application([
(r”/”, MainHandler),
])
if __name__ == “__main__”:
application.listen(8888)
tornado.ioloop.IOLoop.instance().start()
# Python開發的一個快速,高層次的屏幕抓取和web抓取框架,用于抓取web站點并從頁面中提取結構化的數據。
pip install scrapy
from scrapy import Spider, Item, Field
class Post(Item):
title = Field()
class BlogSpider(Spider):
name, start_urls = ‘blogspider’, [‘http://blog.scrapinghub.com’]
def parse(self, response):
return [Post(title=e.extract()) for e in response.css(“h2 a::text”)]
scrapy runspider myspider.py
django [重量級web框架]
bottle [輕量級的Web框架]
學習本來是一件很有樂趣的事情,但是我們做好,就一定努力學習,和深深度思考如何做好,苦沒有什么,但是就是怕吃苦,你才覺得辛苦。本文學習僅供參考真正學習還是需要系統學習,思維和邏輯 項目和指導.可以加群:516126034。
總結
以上是生活随笔為你收集整理的python必学_Python必学框架的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python让用户输入字符串_当用户输入
- 下一篇: 21天学通python第4章课后题答案_