Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from flask import Flask,session,escape,url_for,render_template,redirect,flash,request,g, send_from_directory
- from html2text import html2text
- import os
- import random
- from werkzeug import secure_filename
- from PIL import ImageGrab
- import sqlite3
- from datetime import date, datetime
- app = Flask(__name__,static_folder="static")
- #----------Index Page start------------
- @app.route('/')
- def index():
- return render_template('login.html')
- #----------Create user account Signup---------
- @app.route('/signup', methods = ['POST'])
- def signup():
- conn = sqlite3.connect('account.db')
- c = conn.cursor()
- firstname = request.form['firstname']
- lastname = request.form['lastname']
- email = request.form['email']
- password = request.form['password']
- signup = (firstname, lastname, email, password)
- c.execute("INSERT INTO user_signup VALUES (NULL, ?, ?, ?, ?)", signup)
- conn.commit()
- conn.close()
- return redirect('/')
- #---------Login user start------------------
- @app.route('/login', methods = ['POST'])
- def login():
- conn = sqlite3.connect('account.db')
- c = conn.cursor()
- user=request.form['username']
- passw=request.form['password']
- print user,passw
- c.execute("SELECT *FROM user_signup WHERE email=? AND password=?", (request.form['username'], request.form['password']))
- result = c.fetchall()
- for row in result:
- id = row[0]
- firstname = row[1]
- lastname = row[2]
- email = row[3]
- passs = row[4]
- if email == 'sh@gmail.com':
- session['tech_fname'] = firstname
- session['tech_lname'] = lastname
- return redirect(url_for('teacher_show_answer'))
- else:
- if email != user:
- return redirect('/')
- else:
- session['firstname'] = firstname
- session['lastname'] = lastname
- session['id'] = id
- return redirect(url_for('student_show_question'))
- conn.commit()
- conn.close()
- return render_template('login.html')
- @app.route('/logout')
- def logout():
- # remove the username from the session if it's there
- session.pop('username', None)
- return redirect(url_for('index'))
- #--------Teacher page on show Subjective and objective Question Answar--------------
- @app.route('/teacher_show_answer')
- def teacher_show_answer():
- conn = sqlite3.connect('account.db')
- c = conn.cursor()
- c.execute("SELECT s_uid,type,question,ans FROM answer")
- result = c.fetchall()
- print result
- c.execute("SELECT st_uid,type,file FROM user_file")
- record = c.fetchall()
- print record
- return render_template('tech.html',result=result, file_record=record)
- conn.commit()
- conn.close()
- #--------Student Show Subjective and objective Question Answar--------------
- @app.route('/student_show_question')
- def student_show_question():
- ImageGrab.grab().save("./static/x.jpg", "jpeg")
- conn = sqlite3.connect('account.db')
- c = conn.cursor()
- c.execute("SELECT *FROM question")
- result = c.fetchall()
- for row in result:
- type = row[0]
- if type == 'objective':
- 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])
- elif type == 'subjective':
- 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])
- elif type == 'file':
- 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])
- else:
- print "no any type"
- return render_template('student.html')
- conn.commit()
- conn.close()
- #---------Teacher to Student Post objective Ans subjective Question------------
- @app.route("/teacher_post_objective", methods=['POST'])
- def teacher_post_objective():
- conn = sqlite3.connect('account.db')
- c = conn.cursor()
- if 'objective' in request.form:
- type = request.form['type']
- question = request.form['question']
- opt1 = request.form['opt1']
- opt2 = request.form['opt2']
- opt3 = request.form['opt3']
- opt4 = request.form['opt4']
- date = datetime.now()
- status=0
- quest = (type, question, opt1, opt2, opt3, opt4, date, status)
- c.execute("SELECT *FROM question WHERE status=0")
- record=c.fetchone()
- if record is None:
- c.execute("INSERT INTO question VALUES (?, ?, ?, ?, ?, ?, ?, ?)", quest)
- conn.commit()
- return redirect(url_for('teacher_show_answer'))
- else:
- c.execute("UPDATE question SET type=?, quest=?, opt1=?, opt2=?, opt3=?, opt4=?, date_field=? WHERE status=0",(type, question, opt1, opt2, opt3, opt4, date))
- conn.commit()
- return redirect(url_for('teacher_show_answer'))
- return redirect(url_for('teacher_show_answer'))
- elif 'subjective' in request.form:
- type = request.form['type']
- question = request.form['question']
- date = datetime.now()
- status=0
- quest = (type, question, 'No option', 'No option', 'No option', 'No option', date, status)
- c.execute("SELECT *FROM question WHERE status=0")
- record=c.fetchone()
- if record is None:
- c.execute("INSERT INTO question VALUES (?, ?, ?, ?, ?, ?, ?, ?)", quest)
- conn.commit()
- return redirect(url_for('teacher_show_answer'))
- else:
- 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))
- conn.commit()
- return redirect(url_for('teacher_show_answer'))
- elif 'filequestion' in request.form:
- type = request.form['type']
- question = request.form['question']
- date = datetime.now()
- status=0
- quest = (type, question, 'No option', 'No option', 'No option', 'No option', date, status)
- c.execute("SELECT *FROM question WHERE status=0")
- record=c.fetchone()
- if record is None:
- c.execute("INSERT INTO question VALUES (?, ?, ?, ?, ?, ?, ?, ?)", quest)
- conn.commit()
- return redirect(url_for('teacher_show_answer'))
- else:
- 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))
- conn.commit()
- return redirect(url_for('teacher_show_answer'))
- return redirect(url_for('teacher_show_answer'))
- conn.commit()
- conn.close()
- return redirect(url_for('teacher_show_answer'))
- #---------Student Post subjective Question Answar------------
- @app.route('/student_post_answer', methods=['POST'])
- def student_post_answer():
- conn = sqlite3.connect('account.db')
- c = conn.cursor()
- if 'objective' in request.form:
- s_uid = request.form['uid']
- type = request.form['type']
- question = request.form['question']
- ans = request.form['radiobtns']
- date = datetime.now()
- c.execute("SELECT *FROM answer where s_uid = ?", [s_uid])
- record=c.fetchone()
- quest_1=record[2]
- if record is None:
- c.execute("INSERT INTO answer VALUES (?, ?, ?, ?, ?)", ( s_uid, type, question, ans, date))
- conn.commit()
- return redirect(url_for('student_show_question',uid=s_uid))
- elif question != quest_1:
- c.execute("UPDATE answer SET type=?, question=?, ans=?, ans_date=? WHERE s_uid=?", [type, question, ans, date, s_uid])
- conn.commit()
- return redirect(url_for('student_show_question',uid=s_uid))
- else:
- return render_template('error.html',error='Sorry you already submit this question answer')
- elif 'subjective' in request.form:
- s_uid = request.form['uid']
- type = request.form['type']
- question = request.form['question']
- ans = request.form['subjective_ans']
- date = datetime.now()
- print s_uid
- c.execute("SELECT *FROM answer where s_uid = ?", [s_uid])
- record=c.fetchone()
- quest_1=record[2]
- print record
- if record == None:
- c.execute("INSERT INTO answer VALUES (?, ?, ?, ?, ?)", ( s_uid, type, question, ans, date))
- conn.commit()
- return redirect(url_for('student_show_question',uid=s_uid))
- elif question != quest_1:
- c.execute("UPDATE answer SET type=?, question=?, ans=?, ans_date=? WHERE s_uid=?", [type, question, ans, date, s_uid])
- conn.commit()
- return redirect(url_for('student_show_question',uid=s_uid))
- else:
- return render_template('error.html',error='Sorry you already submit this question answer')
- conn.close()
- return redirect(url_for('student_show_question',uid=s_uid))
- # This is the path to the upload directory
- app.config['UPLOAD_FOLDER'] = 'uploads/'
- # These are the extension that we are accepting to be uploaded
- app.config['ALLOWED_EXTENSIONS'] = set(['txt', 'pdf', 'py', 'png', 'jpg', 'jpeg', 'gif'])
- def allowed_file(filename):
- return '.' in filename and \
- filename.rsplit('.', 1)[1] in app.config['ALLOWED_EXTENSIONS']
- # Route that will process the file upload
- @app.route('/upload', methods=['POST'])
- def upload():
- conn = sqlite3.connect('account.db')
- c = conn.cursor()
- type= 'workfile'
- uid = request.form['uid']
- file = request.files['file']
- date = datetime.now()
- if file and allowed_file(file.filename):
- filename = secure_filename(file.filename)
- ran=random.randint(0, 100)
- ext = filename.split('.')[-1]
- filename = "%s.%s" % (ran, ext)
- file.save(os.path.join(app.config['UPLOAD_FOLDER'], filename))
- c.execute("SELECT *FROM user_file where st_uid = ?", [uid])
- record=c.fetchone()
- id=record[2]
- print filename,uid,date,type
- if record is None:
- c.execute("INSERT INTO user_file VALUES (NULL, ?, ?, ?, ?)", ( type, uid, filename, date ))
- conn.commit()
- return redirect(url_for('student_show_question'))
- elif uid != id:
- c.execute("UPDATE user_file SET type=?, st_uid=?, file=?, send_date=? WHERE st_uid=?", [type, uid, filename, date, uid])
- conn.commit()
- return redirect(url_for('student_show_question'))
- else:
- return render_template('error.html',error='Sorry you already submit this question answer')
- return redirect(url_for('student_show_question'))
- return redirect(url_for('student_show_question'))
- conn.close()
- @app.route('/uploads', methods=['POST'])
- def uploaded_file():
- name = request.form['filevalue']
- return send_from_directory(app.config['UPLOAD_FOLDER'], name)
- app.secret_key = 'A0Zr98j/3yX R~XHH!jmN]LWX/,?RT'
- if __name__ == "__main__":
- app.run(host='0.0.0.0')
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement