您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符

97 行
2.8KB

  1. from django.http import HttpResponse, HttpResponseRedirect
  2. from django.shortcuts import render
  3. from datetime import datetime
  4. import json
  5. import os
  6. import pandas as pd
  7. import matplotlib.pyplot as plt
  8. import numpy as np
  9. import seaborn as sns
  10. import re as re
  11. from .predict import predict_blooming
  12. def index(request):
  13. soon_blooms = predict_blooming('20.05.2019')
  14. return render(request, 'mobile/index.html', {'prediction': soon_blooms})
  15. def scan(request):
  16. question = q1
  17. if request.POST:
  18. data = request.POST
  19. print("data")
  20. if data["question"]:
  21. print("response to question", data["question"])
  22. for q in questions:
  23. if not q.key == data["question"]:
  24. continue
  25. for opt in q.options:
  26. if not opt.text == data["chosen_option"]:
  27. continue
  28. if opt.question:
  29. question = opt.question
  30. break
  31. else:
  32. return scanned(request, opt.result)
  33. # first question
  34. context = {'question': question}
  35. return render(request, 'mobile/scan.html', context)
  36. def scanned(request, tree):
  37. context = {'tree': {'name': tree}}
  38. return render(request, 'mobile/scanned.html', context)
  39. def addtree(request):
  40. if not request.POST:
  41. return HttpResponseRedirect("/mobile/scan")
  42. name = request.POST["name"]
  43. tree = request.POST["name"]
  44. longitude = request.POST["longitude"]
  45. latitude = request.POST["latitude"]
  46. bloom_start = datetime.now().timetuple().tm_yday
  47. if not os.path.isfile('/tmp/data.json'):
  48. data = {'trees': []}
  49. else:
  50. with open('/tmp/data.json', 'r') as f:
  51. data = json.load(f)
  52. with open('/tmp/data.json', 'w') as f:
  53. data["trees"].append(
  54. {'name': name, 'species': tree,
  55. 'longitude': longitude, 'latitude': latitude,
  56. 'bloom_start': bloom_start }
  57. )
  58. json.dump(data, f, indent=4)
  59. return render(request, "mobile/thankyou.html")
  60. class Option:
  61. def __init__(self, text, question=None, result=None):
  62. self.text = text
  63. self.question = question
  64. self.result = result
  65. class Question:
  66. def __init__(self, key, text, options):
  67. self.key = key
  68. self.text = text
  69. self.options = options
  70. q3 = Question("alive", "Is your tree alive?",
  71. [Option("yes", result="Poor Apple Tree"),
  72. Option("no", result="Dead Apple Tree")])
  73. q2 = Question("red", "Is your tree red?",
  74. [Option("yes", result="Red Apple Tree"),
  75. Option("no", result="Green Apple Tree")])
  76. q1 = Question("leaves", "Does your tree have leaves?",
  77. [Option("yes", question=q2), Option("no", question=q3)])
  78. questions = [q1, q2, q3]