urls.py 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160
  1. from MicroWebSrv.microWebSrv import MicroWebSrv
  2. # ----------------------------------------------------------------------------
  3. from MicroWebSrv.upload_dat import upload
  4. # @MicroWebSrv.route('/')
  5. # def _httpHandlerRootGet(httpClient, httpResponse) :
  6. # print('root:')
  7. # httpResponse.WriteResponseFile(
  8. # filepath= r'/MicroWebSrv/web_files/index.html',
  9. # contentType = "text/html",
  10. # headers = None)
  11. # @MicroWebSrv.route('/js/<index>')
  12. # @MicroWebSrv.route('/js')
  13. # def _httpHandlerJsGet(httpClient, httpResponse, args={}) :
  14. # print("httpClient.GetServer():", httpClient.GetServer())
  15. # print("httpClient.GetAddr():", httpClient.GetAddr())
  16. # print("httpClient.GetIPAddr():", httpClient.GetIPAddr())
  17. # print("httpClient.GetPort():", httpClient.GetPort())
  18. # print("httpClient.GetRequestMethod():", httpClient.GetRequestMethod())
  19. # print("httpClient.GetRequestTotalPath():", httpClient.GetRequestTotalPath())
  20. # print("httpClient.GetRequestPath():", httpClient.GetRequestPath())
  21. # print("httpClient.GetRequestQueryString():", httpClient.GetRequestQueryString())
  22. # print("httpClient.GetRequestQueryParams():", httpClient.GetRequestQueryParams())
  23. # print("httpClient.GetRequestHeaders():", httpClient.GetRequestHeaders())
  24. # print("httpClient.GetRequestContentType():", httpClient.GetRequestContentType())
  25. # print("httpClient.GetRequestContentLength():", httpClient.GetRequestContentLength())
  26. # print("httpClient.ReadRequestContent(size=None):", httpClient.ReadRequestContent(size=None))
  27. # print("httpClient.ReadRequestPostedFormData():", httpClient.ReadRequestPostedFormData())
  28. # print("httpClient.ReadRequestContentAsJSON():", httpClient.ReadRequestContentAsJSON())
  29. # print('args:', args)
  30. # httpResponse.WriteResponseFile(
  31. # filepath= r'/MicroWebSrv/web_files/js/heat.js',
  32. # contentType = "application/javascript",
  33. # headers = None)
  34. # @MicroWebSrv.route('/css/<index>')
  35. # def _httpHandlerCssGet(httpClient, httpResponse, args={}) :
  36. # print('args:', args)
  37. # httpResponse.WriteResponseFile(
  38. # filepath= r'/MicroWebSrv/web_files/js/heat.js',
  39. # contentType = "application/javascript",
  40. # headers = None)
  41. # @MicroWebSrv.route('/img/<index>')
  42. # def _httpHandlerImgGet(httpClient, httpResponse, args={}) :
  43. # print('args:', args)
  44. # httpResponse.WriteResponseFile(
  45. # filepath= r'/MicroWebSrv/web_files/js/heat.js',
  46. # contentType = "application/javascript",
  47. # headers = None)
  48. @MicroWebSrv.route('/status')
  49. def _httpHandlerStatusGet(httpClient, httpResponse) :
  50. content = upload.get_status()
  51. print('board status:\n', content)
  52. httpResponse.WriteResponseOk( headers = None,
  53. contentType = "text/html",
  54. contentCharset = "UTF-8",
  55. content = content )
  56. @MicroWebSrv.route('/test')
  57. def _httpHandlerTestGet(httpClient, httpResponse) :
  58. httpResponse.WriteResponseFile(
  59. filepath= r'MicroWebSrv\web_files\test.html',
  60. contentType = "text/html",
  61. headers = None)
  62. print('handle')
  63. # print('GetRequestHeaders:',httpClient.GetRequestHeaders())
  64. # print('ReadRequestContent: ',httpClient.ReadRequestContent(size=None))
  65. # print('ReadRequestContentAsJSON:', httpClient.ReadRequestContentAsJSON())
  66. @MicroWebSrv.route('/test', 'POST')
  67. def _httpHandlerTestPost(httpClient, httpResponse) :
  68. formData = httpClient.ReadRequestPostedFormData()
  69. firstname = formData["firstname"]
  70. lastname = formData["lastname"]
  71. content = """\
  72. <!DOCTYPE html>
  73. <html lang=en>
  74. <head>
  75. <meta charset="UTF-8" />
  76. <title>TEST POST</title>
  77. </head>
  78. <body>
  79. <h1>TEST POST</h1>
  80. Firstname = %s<br />
  81. Lastname = %s<br />
  82. </body>
  83. </html>
  84. """ % ( MicroWebSrv.HTMLEscape(firstname),
  85. MicroWebSrv.HTMLEscape(lastname) )
  86. httpResponse.WriteResponseOk( headers = None,
  87. contentType = "text/html",
  88. contentCharset = "UTF-8",
  89. content = content )
  90. @MicroWebSrv.route('/edit/<index>') # <IP>/edit/123 -> args['index']=123
  91. @MicroWebSrv.route('/edit/<index>/abc/<foo>') # <IP>/edit/123/abc/bar -> args['index']=123 args['foo']='bar'
  92. @MicroWebSrv.route('/edit') # <IP>/edit -> args={}
  93. def _httpHandlerEditWithArgs(httpClient, httpResponse, args={}) :
  94. content = """\
  95. <!DOCTYPE html>
  96. <html lang=en>
  97. <head>
  98. <meta charset="UTF-8" />
  99. <title>TEST EDIT</title>
  100. </head>
  101. <body>
  102. """
  103. content += "<h1>EDIT item with {} variable arguments</h1>"\
  104. .format(len(args))
  105. if 'index' in args :
  106. content += "<p>index = {}</p>".format(args['index'])
  107. if 'foo' in args :
  108. content += "<p>foo = {}</p>".format(args['foo'])
  109. content += """
  110. </body>
  111. </html>
  112. """
  113. httpResponse.WriteResponseOk( headers = None,
  114. contentType = "text/html",
  115. contentCharset = "UTF-8",
  116. content = content )
  117. # ----------------------------------------------------------------------------
  118. def _acceptWebSocketCallback(webSocket, httpClient) :
  119. print("WS ACCEPT")
  120. webSocket.RecvTextCallback = _recvTextCallback
  121. webSocket.RecvBinaryCallback = _recvBinaryCallback
  122. webSocket.ClosedCallback = _closedCallback
  123. def _recvTextCallback(webSocket, msg) :
  124. print("WS RECV TEXT : %s" % msg)
  125. webSocket.SendText("Reply for %s" % msg)
  126. def _recvBinaryCallback(webSocket, data) :
  127. print("WS RECV DATA : %s" % data)
  128. def _closedCallback(webSocket) :
  129. print("WS CLOSED")
  130. # ----------------------------------------------------------------------------
  131. routeHandlers = [
  132. # ( "/", "GET", _httpHandlerRootGet ),
  133. # ( "/js", "GET", _httpHandlerJsGet ),
  134. # ( "/css/<index>", "GET", _httpHandlerCssGet ),
  135. # ( "/img", "GET", _httpHandlerImgGet ),
  136. ( "/status", "GET", _httpHandlerStatusGet ),
  137. ( "/test", "GET", _httpHandlerTestGet ),
  138. ( "/test", "POST", _httpHandlerTestPost )
  139. ]