tornado api 簡單模板

# 安裝css

pip insatll tornado

 

# 主文件 web_server.pyhtml

#!/usr/bin/env python
# encoding: utf-8

import tornado.httpserver
import tornado.options
import tornado.web
from tornado.options import define,options
import sys,os,re

from apicode import Apicode # 具體本身業務用到的模塊!!
reload(sys) sys.setdefaultencoding(
'utf-8') # 定義默認調用端口爲8088 define("port",default=8088,help="run on the given port",type=int) # 驗證碼演示demo class VcodeHandler(tornado.web.RequestHandler): # get 請求 def get(self): result = self.get_argument("result",{}) city = self.get_argument('city', u'重慶') self.render("input_code.html", city=city, result=result) # post 請求 def post(self): result = {'code':0 , 'msg': 'success', 'result': ''} # 獲取參數 city = self.get_argument('city', 'CQ') method = self.get_argument('method', 'LR') detail = eval(self.get_argument('detail', False)) imgUrl = self.get_argument('imgUrl', '') imgFile = self.request.files.get('imgfile', []) fname = '' # url 方式 if imgUrl and re.search('.+\.(jpg|png|bmp|gif)', imgUrl): fname = './static/uploads/%s' % imgUrl.split('/')[-1] result['result']= vcode.predict_url(city, imgUrl, detail, method) # 上傳文件方式 elif imgFile: for img in imgFile: with open('./static/uploads/' + img['filename'], 'wb') as fw: fw.write(img['body']) fname = './static/uploads/' + img['filename'] result['result'] = vcode.predict(city, fname, detail, method) else: errorMsg = "上傳驗證碼圖片文件錯誤或url圖片格式不正確" result['code'] = '-1' result['msg'] = errorMsg self.render("output_code.html", city=city, source=fname, detail=detail, method=method, result=result) # 驗證碼調用api class VcodeApiHandler(tornado.web.RequestHandler): def get(self): result = {'code': 1000 , 'msg': '調用參數錯誤, 請用post方式請求, city & imgfile 參數', 'result': '使用說明: http://gitlab.tangees.com/miaoweihong/verify-code'} json_result = tornado.escape.json_encode(result) self.write(json_result) def post(self): result = {'code': 0 , 'msg': 'success', 'result': ''} city = self.get_argument('city', 'CQ') method = self.get_argument('method', 'LR') detail = eval(self.get_argument('detail', False)) imgFile = self.request.files.get('imgfile', []) if imgFile: for img in imgFile: with open('./static/uploads/' + img['filename'], 'wb') as fw: fw.write(img['body']) fname = './static/uploads/' + img['filename'] try: result['result'] = vcode.predict(city, fname, detail, method) except Exception as e: result['code'] = 1001 result['msg'] = '上傳文件內容有誤' + str(e) else: result['code'] = 1002 result['msg'] = '沒有文件內容' # 返回json結果 json_result = tornado.escape.json_encode(result) self.write(json_result) class TestHandler(tornado.web.RequestHandler): def get(self): self.write('hello, jkmiao') if __name__ == "__main__": # 引入自行定義的模塊 vcode = Apicode() tornado.options.parse_command_line() app = tornado.web.Application( handlers = [(r'/vcode',VcodeHandler), (r'/vcodeapi', VcodeApiHandler)], # url匹配 template_path = os.path.join(os.path.dirname(__file__),"templates"), # 定義視圖頁面地址,放 html文件 static_path = os.path.join(os.path.dirname(__file__), "static"), # 定義靜態模板,放 css,js等文件 debug=True, # 是否爲debug模式 autoescape=None, # 不設置轉義字符 ) http_server = tornado.httpserver.HTTPServer(app) http_server.listen(options.port) print "starting tornado at port http://127.0.0.1:%d" % options.port tornado.ioloop.IOLoop.instance().start()

搞定!python

 教程git

===============最基本  hello world ==================web

代碼清單:hello.py

import tornado.httpserver
import tornado.ioloop
import tornado.options
import tornado.web

from tornado.options import define, options
define("port", default=8000, help="run on the given port", type=int)

class IndexHandler(tornado.web.RequestHandler):
    def get(self):
        greeting = self.get_argument('greeting', 'Hello')
        self.write(greeting + ', friendly user!')

if __name__ == "__main__":
    tornado.options.parse_command_line()
    app = tornado.web.Application(handlers=[(r"/", IndexHandler)])
    http_server = tornado.httpserver.HTTPServer(app)
    http_server.listen(options.port)
    tornado.ioloop.IOLoop.instance().start()
相關文章
相關標籤/搜索