Advertisement
Guest User

Untitled

a guest
Feb 13th, 2016
103
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 9.69 KB | None | 0 0
  1. from flask import Flask,session,escape,url_for,render_template,redirect,flash,request,g, send_from_directory
  2. from html2text import html2text
  3. import os
  4. import random
  5. from werkzeug import secure_filename
  6. from PIL import ImageGrab
  7. import sqlite3
  8. from datetime import date, datetime
  9.  
  10. app = Flask(__name__,static_folder="static")
  11.  
  12. #----------Index Page start------------
  13. @app.route('/')
  14. def index():
  15. return render_template('login.html')
  16.  
  17. #----------Create user account Signup---------
  18.  
  19. @app.route('/signup', methods = ['POST'])
  20. def signup():
  21. conn = sqlite3.connect('account.db')
  22. c = conn.cursor()
  23. firstname = request.form['firstname']
  24. lastname = request.form['lastname']
  25. email = request.form['email']
  26. password = request.form['password']
  27. signup = (firstname, lastname, email, password)
  28. c.execute("INSERT INTO user_signup VALUES (NULL, ?, ?, ?, ?)", signup)
  29. conn.commit()
  30. conn.close()
  31. return redirect('/')
  32.  
  33. #---------Login user start------------------
  34. @app.route('/login', methods = ['POST'])
  35. def login():
  36. conn = sqlite3.connect('account.db')
  37. c = conn.cursor()
  38. user=request.form['username']
  39. passw=request.form['password']
  40. print user,passw
  41. c.execute("SELECT *FROM user_signup WHERE email=? AND password=?", (request.form['username'], request.form['password']))
  42. result = c.fetchall()
  43. for row in result:
  44. id = row[0]
  45. firstname = row[1]
  46. lastname = row[2]
  47. email = row[3]
  48. passs = row[4]
  49. if email == 'sh@gmail.com':
  50. session['tech_fname'] = firstname
  51. session['tech_lname'] = lastname
  52. return redirect(url_for('teacher_show_answer'))
  53. else:
  54. if email != user:
  55. return redirect('/')
  56. else:
  57. session['firstname'] = firstname
  58. session['lastname'] = lastname
  59. session['id'] = id
  60. return redirect(url_for('student_show_question'))
  61. conn.commit()
  62. conn.close()
  63. return render_template('login.html')
  64.  
  65. @app.route('/logout')
  66. def logout():
  67. # remove the username from the session if it's there
  68. session.pop('username', None)
  69. return redirect(url_for('index'))
  70.  
  71. #--------Teacher page on show Subjective and objective Question Answar--------------
  72. @app.route('/teacher_show_answer')
  73. def teacher_show_answer():
  74. conn = sqlite3.connect('account.db')
  75. c = conn.cursor()
  76. c.execute("SELECT s_uid,type,question,ans FROM answer")
  77. result = c.fetchall()
  78. print result
  79. c.execute("SELECT st_uid,type,file FROM user_file")
  80. record = c.fetchall()
  81. print record
  82. return render_template('tech.html',result=result, file_record=record)
  83. conn.commit()
  84. conn.close()
  85.  
  86. #--------Student Show Subjective and objective Question Answar--------------
  87. @app.route('/student_show_question')
  88. def student_show_question():
  89. ImageGrab.grab().save("./static/x.jpg", "jpeg")
  90. conn = sqlite3.connect('account.db')
  91. c = conn.cursor()
  92. c.execute("SELECT *FROM question")
  93. result = c.fetchall()
  94. for row in result:
  95. type = row[0]
  96. if type == 'objective':
  97. return render_template('student.html', type=type, question=row[1], opt_1=row[2], opt_2=row[3], opt_3=row[4], opt_4=row[5])
  98. elif type == 'subjective':
  99. return render_template('student.html', type=type, question=row[1], opt_1=row[2], opt_2=row[3], opt_3=row[4], opt_4=row[5])
  100. elif type == 'file':
  101. return render_template('student.html', type=type, question=row[1], opt_1=row[2], opt_2=row[3], opt_3=row[4], opt_4=row[5])
  102. else:
  103. print "no any type"
  104. return render_template('student.html')
  105. conn.commit()
  106. conn.close()
  107.  
  108. #---------Teacher to Student Post objective Ans subjective Question------------
  109. @app.route("/teacher_post_objective", methods=['POST'])
  110. def teacher_post_objective():
  111. conn = sqlite3.connect('account.db')
  112. c = conn.cursor()
  113. if 'objective' in request.form:
  114. type = request.form['type']
  115. question = request.form['question']
  116. opt1 = request.form['opt1']
  117. opt2 = request.form['opt2']
  118. opt3 = request.form['opt3']
  119. opt4 = request.form['opt4']
  120. date = datetime.now()
  121. status=0
  122. quest = (type, question, opt1, opt2, opt3, opt4, date, status)
  123. c.execute("SELECT *FROM question WHERE status=0")
  124. record=c.fetchone()
  125. if record is None:
  126. c.execute("INSERT INTO question VALUES (?, ?, ?, ?, ?, ?, ?, ?)", quest)
  127. conn.commit()
  128. return redirect(url_for('teacher_show_answer'))
  129. else:
  130. c.execute("UPDATE question SET type=?, quest=?, opt1=?, opt2=?, opt3=?, opt4=?, date_field=? WHERE status=0",(type, question, opt1, opt2, opt3, opt4, date))
  131. conn.commit()
  132. return redirect(url_for('teacher_show_answer'))
  133. return redirect(url_for('teacher_show_answer'))
  134. elif 'subjective' in request.form:
  135. type = request.form['type']
  136. question = request.form['question']
  137. date = datetime.now()
  138. status=0
  139. quest = (type, question, 'No option', 'No option', 'No option', 'No option', date, status)
  140. c.execute("SELECT *FROM question WHERE status=0")
  141. record=c.fetchone()
  142. if record is None:
  143. c.execute("INSERT INTO question VALUES (?, ?, ?, ?, ?, ?, ?, ?)", quest)
  144. conn.commit()
  145. return redirect(url_for('teacher_show_answer'))
  146. else:
  147. c.execute("UPDATE question SET type=?, quest=?, opt1=?, opt2=?, opt3=?, opt4=?, date_field=? WHERE status=0",(type, question, 'No option', 'No option', 'No option', 'No option', date))
  148. conn.commit()
  149. return redirect(url_for('teacher_show_answer'))
  150. elif 'filequestion' in request.form:
  151. type = request.form['type']
  152. question = request.form['question']
  153. date = datetime.now()
  154. status=0
  155. quest = (type, question, 'No option', 'No option', 'No option', 'No option', date, status)
  156. c.execute("SELECT *FROM question WHERE status=0")
  157. record=c.fetchone()
  158. if record is None:
  159. c.execute("INSERT INTO question VALUES (?, ?, ?, ?, ?, ?, ?, ?)", quest)
  160. conn.commit()
  161. return redirect(url_for('teacher_show_answer'))
  162. else:
  163. c.execute("UPDATE question SET type=?, quest=?, opt1=?, opt2=?, opt3=?, opt4=?, date_field=? WHERE status=0",(type, question, 'No option', 'No option', 'No option', 'No option', date))
  164. conn.commit()
  165. return redirect(url_for('teacher_show_answer'))
  166. return redirect(url_for('teacher_show_answer'))
  167. conn.commit()
  168. conn.close()
  169. return redirect(url_for('teacher_show_answer'))
  170.  
  171. #---------Student Post subjective Question Answar------------
  172. @app.route('/student_post_answer', methods=['POST'])
  173. def student_post_answer():
  174. conn = sqlite3.connect('account.db')
  175. c = conn.cursor()
  176. if 'objective' in request.form:
  177. s_uid = request.form['uid']
  178. type = request.form['type']
  179. question = request.form['question']
  180. ans = request.form['radiobtns']
  181. date = datetime.now()
  182. c.execute("SELECT *FROM answer where s_uid = ?", [s_uid])
  183. record=c.fetchone()
  184. quest_1=record[2]
  185. if record is None:
  186. c.execute("INSERT INTO answer VALUES (?, ?, ?, ?, ?)", ( s_uid, type, question, ans, date))
  187. conn.commit()
  188. return redirect(url_for('student_show_question',uid=s_uid))
  189. elif question != quest_1:
  190. c.execute("UPDATE answer SET type=?, question=?, ans=?, ans_date=? WHERE s_uid=?", [type, question, ans, date, s_uid])
  191. conn.commit()
  192. return redirect(url_for('student_show_question',uid=s_uid))
  193. else:
  194. return render_template('error.html',error='Sorry you already submit this question answer')
  195.  
  196. elif 'subjective' in request.form:
  197. s_uid = request.form['uid']
  198. type = request.form['type']
  199. question = request.form['question']
  200. ans = request.form['subjective_ans']
  201. date = datetime.now()
  202. print s_uid
  203. c.execute("SELECT *FROM answer where s_uid = ?", [s_uid])
  204. record=c.fetchone()
  205. quest_1=record[2]
  206. print record
  207. if record == None:
  208. c.execute("INSERT INTO answer VALUES (?, ?, ?, ?, ?)", ( s_uid, type, question, ans, date))
  209. conn.commit()
  210. return redirect(url_for('student_show_question',uid=s_uid))
  211. elif question != quest_1:
  212. c.execute("UPDATE answer SET type=?, question=?, ans=?, ans_date=? WHERE s_uid=?", [type, question, ans, date, s_uid])
  213. conn.commit()
  214. return redirect(url_for('student_show_question',uid=s_uid))
  215. else:
  216. return render_template('error.html',error='Sorry you already submit this question answer')
  217. conn.close()
  218. return redirect(url_for('student_show_question',uid=s_uid))
  219.  
  220.  
  221.  
  222. # This is the path to the upload directory
  223. app.config['UPLOAD_FOLDER'] = 'uploads/'
  224. # These are the extension that we are accepting to be uploaded
  225. app.config['ALLOWED_EXTENSIONS'] = set(['txt', 'pdf', 'py', 'png', 'jpg', 'jpeg', 'gif'])
  226.  
  227. def allowed_file(filename):
  228. return '.' in filename and \
  229. filename.rsplit('.', 1)[1] in app.config['ALLOWED_EXTENSIONS']
  230.  
  231. # Route that will process the file upload
  232. @app.route('/upload', methods=['POST'])
  233. def upload():
  234. conn = sqlite3.connect('account.db')
  235. c = conn.cursor()
  236. type= 'workfile'
  237. uid = request.form['uid']
  238. file = request.files['file']
  239. date = datetime.now()
  240. if file and allowed_file(file.filename):
  241. filename = secure_filename(file.filename)
  242. ran=random.randint(0, 100)
  243. ext = filename.split('.')[-1]
  244. filename = "%s.%s" % (ran, ext)
  245. file.save(os.path.join(app.config['UPLOAD_FOLDER'], filename))
  246. c.execute("SELECT *FROM user_file where st_uid = ?", [uid])
  247. record=c.fetchone()
  248. id=record[2]
  249. print filename,uid,date,type
  250. if record is None:
  251. c.execute("INSERT INTO user_file VALUES (NULL, ?, ?, ?, ?)", ( type, uid, filename, date ))
  252. conn.commit()
  253. return redirect(url_for('student_show_question'))
  254. elif uid != id:
  255. c.execute("UPDATE user_file SET type=?, st_uid=?, file=?, send_date=? WHERE st_uid=?", [type, uid, filename, date, uid])
  256. conn.commit()
  257. return redirect(url_for('student_show_question'))
  258. else:
  259. return render_template('error.html',error='Sorry you already submit this question answer')
  260. return redirect(url_for('student_show_question'))
  261. return redirect(url_for('student_show_question'))
  262. conn.close()
  263.  
  264.  
  265. @app.route('/uploads', methods=['POST'])
  266. def uploaded_file():
  267. name = request.form['filevalue']
  268. return send_from_directory(app.config['UPLOAD_FOLDER'], name)
  269.  
  270. app.secret_key = 'A0Zr98j/3yX R~XHH!jmN]LWX/,?RT'
  271. if __name__ == "__main__":
  272. app.run(host='0.0.0.0')
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement