예제 #1
0
def updateStudent(idNum):

    cur = mysql.connection.cursor()

    cur.execute("SELECT * FROM Student WHERE idNum = %s", [idNum])

    row = cur.fetchone()

    form = UpdateStudent(request.form)

    if request.method == 'POST' and form.validate():
        courseId = request.form['courseId']
        firstName = request.form['firstName']
        middleName = request.form['middleName']
        lastName = request.form['lastName']
        sex = request.form['sex']

        student = models.Student(idNum=idNum,
                                 courseId=courseId,
                                 firstName=firstName,
                                 middleName=middleName,
                                 lastName=lastName,
                                 sex=sex)
        student.update()
        cur.close()
        flash('Successfully Updated', 'success')
        return render_template('updateStudent.html', form=form, row=row)
    return render_template('updateStudent.html', form=form, row=row)
예제 #2
0
    def loginUser(self, User):

        isNoob = 0
        std_query = db.GqlQuery("SELECT * FROM Student WHERE user = :1",
                                User).fetch(1)
        student = {}

        if len(std_query) == 0:

            try:
                url = "https://mcommunity.umich.edu/mcPeopleService/people/" + User.nickname(
                )
                result = urlfetch.fetch(url)
                info = json.loads(result.content)
                studentName = info['person']['displayName']
            except:
                studentName = User.nickname()

            student = models.Student(user=User,
                                     courses=[],
                                     reminders=[],
                                     major="",
                                     advisor_email="",
                                     name=studentName,
                                     calID="")

            logging.warning(student)
            student.put()
            isNoob = 1
        else:
            student = std_query[0]

        logging.warning(models.serialize(student))

        context = {
            'name': student.name,
            'email': student.user.email(),
            'major': student.major,
            'advisor_email': student.advisor_email,
            'logoutUrl': users.create_logout_url("/"),
            'achievement': 89,
            'noob': isNoob,
            'admin': users.is_current_user_admin()
        }

        self.render_response('index.jade', **context)

        # create the courses calendar asynchronously
        if student.calID is None or student.calID == "":
            logging.warning('student calID is empty')
            calendar = utils.createCal()

            request = service.calendars().insert(body=calendar)
            created_cal = request.execute(http=decorator.http())
            student.calID = created_cal["id"]
        else:
            logging.warning('student cal id already exists, it is %s' %
                            student.calID)

        student.put()
예제 #3
0
def list_all_students():
    """Lists all registered students."""
    students = models.Student.query()
    form = forms.NewStudentForm()

    graduation_year = -1
    try:
        graduation_year = int(graduation_year)
    except ValueError:
        pass

    if form.validate_on_submit():
        print "Hi there"
        student = models.Student(name=form.name.data,
                                 email=form.email.data,
                                 graduation_year=graduation_year,
                                 preferences=form.preferences.data)
        try:
            student.put()
            student_id = student.key.id()
            flash(u'Student {} successfully saved.'.format(student_id),
                  'success')
            return redirect(url_for('list_all_students'))
        except CapabilityDisabledError:
            flash(u'App Engine Datastore is currently in read-only mode.',
                  'error')
            return redirect(url_for('list_all_students'))

    return render_template('list_students.html', students=students, form=form)
예제 #4
0
def searchGet():
    search = request.form['search']
    if request.method == 'POST':
        con = sql.connect("studentdb.db")
        cur = con.cursor()

        cur.execute(
            "SELECT * FROM students where idnum = ? or fname = ? or mname = ? or lname = ? or sex=? or courseid = ?",
            (search, search, search, search, search, search))

        if cur.fetchone() is None:
            flash('Student Not in record or Letter capitalization incorrect',
                  'error')
            return render_template("studentDatabase.html")

        else:
            student = models.Student(idnum=search,
                                     fname=search,
                                     mname=search,
                                     lname=search,
                                     sex=search,
                                     courseid=search)
            studs = student.search()
            return render_template("print.html", studs=studs)

    else:
        return render_template("studentDatabase.html")
예제 #5
0
def deletepage():
    form = iDnumForm(request.form)
    con = sql.connect("studentdb.db")
    cur = con.cursor()
    if request.method == 'POST':
        idnumNew = form.idnumNew.data

        cur.execute("SELECT * FROM students WHERE idnum = ?", (idnumNew, ))

        if cur.fetchone() is None and form.validate():
            flash('Student not found', 'error')
            return render_template("delete.html", form=form)

        elif form.validate() and cur.fetchone is not None:

            student = models.Student(idnum=idnumNew,
                                     fname="",
                                     mname="",
                                     lname="",
                                     sex="",
                                     courseid="")
            student.delete()
            flash('Student Successfully deleted', 'success')
            return render_template("delete.html", form=form)
        elif not form.validate():
            flash('error in delete operation', 'error')
            return render_template("delete.html", form=form)

    else:
        return render_template("delete.html", form=form)
예제 #6
0
def adder():

    form = Forms(request.form)
    if request.method == 'POST':
        con = sql.connect("studentdb.db")
        cur = con.cursor()

        idnumNew = form.idnumNew.data
        fnameNew = form.fnameNew.data
        mnameNew = form.mnameNew.data
        lnameNew = form.lnameNew.data
        sexNew = form.sexNew.data
        courseidNew = form.courseidNew.data

        cur.execute("SELECT * FROM students WHERE idnum = ?", (idnumNew,))

        if cur.fetchone() is not None:
            flash('Id number already taken', 'error')
            return render_template("add.html", form=form)
        elif not form.validate():
            flash("Please don't leave any blank", 'error')
            return render_template("add.html", form=form)

        elif form.validate():
            student = models.Student(idnum = idnumNew, fname = fnameNew, mname =  mnameNew, lname = lnameNew, sex = sexNew,courseid = courseidNew)
            student.add()
            flash('Student successfully added', 'success')
            return render_template("studentDatabase.html")
    else:
        return render_template("add.html", form=form)
    con.close()
예제 #7
0
def deleteStudent(idNum):
    student = models.Student(idNum=idNum,
                             courseId="",
                             firstName="",
                             middleName="",
                             lastName="",
                             sex="")
    student.delete()
    flash('Successfully Deleted', 'success')
    return render_template('deleteSuccess.html')
예제 #8
0
def update_student(db:Session, student_id: int, student: schema.StudentBase):
    ###delete step
    name_add = student.name
    class_id_add =  student.class_id
    delete_student(db = db, student_id = student_id)
    ###adding step
    db_student = models.Student(id=student_id, name=name_add, class_id=class_id_add)
    db.add(db_student)
    db.commit()
    db.refresh(db_student)
예제 #9
0
 def post(self):
     student = models.Student()
     student.id = request.json.get('id')
     student.password = request.json.get('password')
     student.name = request.json.get('name')
     if student.id is not None and student.password is not None:
         db.session.add(student)
         db.session.commit()
         return {}, HTTP_Created
     else:
         return get_shortage_error_dic('name id password'), HTTP_Bad_Request
예제 #10
0
 def post(self):
     periodKey = self.request.get('period')
     period = models.Period.get(periodKey)
     names = self.request.get('names').split('\n')
     logging.info('names = ' + str(names))
     students = []
     for name in names:
         student = models.Student(name=name, period=period)
         student.put()
         students.append(student)
     #self._return_json(students)
     self.redirect('/app/index.html#periods/' +
                   periodKey)  #TODO: This is VERY inelegant
예제 #11
0
def evaluate(model_type='teacher', prefix='teacher'):
    if model_type == 'teacher':
        model = models.Teacher()
    elif model_type == 'student':
        model = models.Student()

    model_paths = []
    for epoch_count in range(0, 3000, 100):
        model_paths.append(
            os.path.join(BASE_DIR, '{}-{}.pth'.format(prefix, epoch_count)))
    model_paths.append(os.path.join(BASE_DIR, '{}.pth'.format(prefix)))

    # Get test data
    dataset = torchvision.datasets.MNIST(
        '../mnist',
        train=False,
        download=True,
        transform=torchvision.transforms.Compose([
            torchvision.transforms.ToTensor(),
            torchvision.transforms.Normalize((0.1307, ), (0.3081, ))
        ]))

    # Create data loader
    batch_size = 10000
    data_loader = torch.utils.data.DataLoader(dataset,
                                              batch_size=batch_size,
                                              shuffle=False)

    error_counts = np.zeros(shape=len(model_paths), dtype=np.int32)
    for model_count, model_path in enumerate(model_paths):
        model.load_state_dict(torch.load(model_path))
        model.eval()
        model = model.cuda()

        error_count = 0
        for x, y_gt in data_loader:
            # Preprocess input
            x = x.flatten(start_dim=1, end_dim=-1)
            x = x.cuda()
            y_gt = y_gt.cuda()

            # Predict label
            y_pred = model(x)
            with torch.no_grad():
                y_pred = torch.argmax(y_pred, dim=1)
                error_count += batch_size - torch.eq(y_pred, y_gt).sum()

        error_counts[model_count] = error_count
        print('{}-{}: {}'.format(prefix, model_count, error_count))

    return error_counts
예제 #12
0
def test_students(test_db):
    test_db.query(models.Student).delete()
    test_db.flush()
    test_db.commit()

    insert_student(
        test_db,
        models.Student(
            firstName="Cynthia",
            lastName="Henderson",
            dateOfBirth=date(2000, 1, 2),
            schoolGrade=6,
            average=60,
        ),
    )
    insert_student(
        test_db,
        models.Student(
            firstName="Marilyn",
            lastName="Snyder",
            dateOfBirth=date(2001, 2, 3),
            schoolGrade=8,
            average=70,
        ),
    )
    insert_student(
        test_db,
        models.Student(
            firstName="David",
            lastName="Dandrea",
            dateOfBirth=date(2002, 3, 4),
            schoolGrade=8,
            average=80,
        ),
    )
    return test_db.query(models.Student).all()
예제 #13
0
파일: app.py 프로젝트: FrankXuuu/StatLab
def classView():
    # print("HEREEEE", request.files)
    if (request.method == 'POST'):
        if 'csvFile' not in request.files:
            print("not in request.files")
            return redirect(request.url)
        print("RIGHT HERE")
        csv_file = request.files['csvFile']
        decoded_file = csv_file.read().decode('utf-8')
        io_string = io.StringIO(decoded_file)
        students = []
        grades = []
        assignments = models.Assignment.query.all()
        for row in csv.reader(io_string, delimiter=';', quotechar='|'):
            print(row)
            studentList = row[0].split(',')
            try:
                student = models.Student(student_id=studentList[0],
                                         first_name=studentList[1],
                                         last_name=studentList[2],
                                         email=studentList[3],
                                         password=studentList[4])
                students.append(student)
            except Exception as e:
                print(e)
                print('Couldnt add student into database')

            for assignment in assignments:
                try:
                    grade = models.StudentGrade(
                        student_id=student.student_id,
                        assignment_id=assignment.assignment_id)
                    grades.append(grade)
                except Exception as e:
                    print(e)
                    print('Couldnt put grade into database')
        db.session.add_all(students + grades)
        db.session.commit()
        students = models.Student.query.order_by(
            models.Student.first_name).all()
        return render_template('class.html', students=students)
    elif (request.method == 'GET'):
        students = models.Student.query.order_by(
            models.Student.first_name).all()
        return render_template('class.html', students=students)
예제 #14
0
def createUser():
    name = request.args.get('name')
    email = request.args.get('email')
    year = request.args.get('year')
    major = request.args.get('major')
    year = year[-1]
    year = int(year)
    if (year == 0):
        year -= 10
    if (name and email and year and major):
        while db.session.query(models.Student).filter_by(student_id=lastIds[year]).first():
            lastIds[year] = (lastIds[year] + 10) % 10
        newUser = models.Student(name=name, email=email, student_id=lastIds[year], major=major)
        db.session.add(newUser)
        db.session.commit()
        # lastIds[year]+=10
        return str(lastIds[year])
    return "Need to give name, user, year, and major, but not all inputs were given"
예제 #15
0
def addStudent():
    form = AddStudent(request.form)
    if request.method == 'POST' and form.validate():
        idNum = form.idNum.data
        courseId = form.courseId.data
        firstName = form.firstName.data
        middleName = form.middleName.data
        lastName = form.lastName.data
        sex = form.sex.data

        student = models.Student(idNum=idNum,
                                 courseId=courseId,
                                 firstName=firstName,
                                 middleName=middleName,
                                 lastName=lastName,
                                 sex=sex)
        student.add()
        flash('A student has been successfully added.', 'success')
    return render_template('addStudent.html', form=form)
예제 #16
0
    def new_f(*args, **kwargs):
        user = users.get_current_user()
        if not ops.__student_exists(user.user_id()):
            s = models.Student(student_id=user.user_id())

            GER_SHEET_NAME = "GERs"
            gerSheet = models.Program_Sheet.query(
                models.Program_Sheet.ps_name == GER_SHEET_NAME).get()
            studentGerSheet = models.Student_Program_Sheet(
                program_sheet=gerSheet.key,
                cand_courses=[],
                allow_double_count=True)
            studentGerSheet.put()
            splan = models.Student_Plan(student_plan_name="DefaultPlan",
                                        student_course_list=[],
                                        program_sheets=[studentGerSheet.key])

            splan.put()
            s.academic_plans.append(splan.key)
            s.put()
        f(*args, **kwargs)
예제 #17
0
def update_student(p):
    print "Updating {}".format(p['username'])
    print "{} = {}".format(p['username'], p['params'])
    data['students'][p['username']] = m.Student(**p['params'])
    save_data()
예제 #18
0
def create_student(db: Session, student: schema.Student):
    db_student = models.Student(id = student.id, name = student.name, class_id = student.class_id)
    db.add(db_student)
    db.commit()
    db.refresh(db_student)
예제 #19
0
# -*- coding:utf-8 -*-
# Project: SQLALchemy 
# Software: PyCharm
# Time    : 2018-09-22 16:15
# File    : 7.练习.py
# Author  : 天晴天朗
# Email   : [email protected]
from sqlalchemy.orm import sessionmaker
from sqlalchemy import create_engine, text
import models

engine = create_engine("mysql+pymysql://root:Tqtl911!@%*)@mysql.cuixiaozhao.com:3306/flask_session?charset=utf8")

maker = sessionmaker(bind=engine)
session = maker()
obj = models.Student(username='******', password='******', class_id=2)
session.add(obj)

# 在学生表中找到崔晓丝;
obj1 = session.query(models.Student).filter(models.Student.username == '崔晓丝').first()
print(obj1)  # <models.Student object at 0x108762a90>

# 找到所有学生;
# 1、LOW B查询方式;
# objs = session.query(models.Student).all()
# for obj in objs:
#     cls_obj = session.query(models.Classes).filter(models.Classes.id ==obj.class_id).first()
#     print(obj.id,obj.username,obj.class_id,cls_obj.name)
# 2、主动连表操作;
objs = session.query(models.Student.id, models.Student.username, models.Classes.name).join(models.Classes,                                                                                        isouter=True).all()
print(objs)
예제 #20
0
def getStudent(reg_no):
    q = models.Student().all().filter('password =', reg_no)
    row = q.fetch(1)
    return row
예제 #21
0
def create_class_student(db: Session, item: schema.StudentCreate, class_id: int):
    db_student = models.Student(**student.dict(), class_id=class_id)
    db.add(db_student)
    db.commit()
    db.refresh(db_student)
    return db_student
예제 #22
0
def AddStudent(department, email):
    row = models.Student(key_name=email)
    row.username = getUserNameFromMail(email)
    row.response_flag = '1'
    row.department = department
    row.put()
예제 #23
0
async def create_student(
    student: schemas.StudentCreate,
    db: Session = Depends(get_db),
    current_user: models.User = Depends(get_current_user),
):
    return insert_student(db, models.Student(**student.dict()))
예제 #24
0
def create_student(p):
    print "Creating student {}".format(p['username'])
    data['students'][p['username']] = m.Student(name=p['username'], **p['params'])
    save_data()
예제 #25
0
session.add_all([col1, col2, col3])
#插入班级
cla1 = models.Classes(class_id = 1604, collage = 1)
cla2 = models.Classes(class_id = 1605, collage = 1)
cla3 = models.Classes(class_id = 1607, collage = 1)
cla4 = models.Classes(class_id = 1604, collage = 2)
cla5 = models.Classes(class_id = 1605, collage = 2)
cla6 = models.Classes(class_id = 1607, collage = 3)
session.add_all([cla1,cla2,cla3,cla4,cla5,cla6])
#插入课程
sub1 = models.Subject(name = 'math', teacher = 1)
sub2 = models.Subject(name = 'English', teacher = 1)
sub3 = models.Subject(name = 'Chinese', teacher = 1)
session.add_all([sub1,sub2,sub3])
#插入学生
stu1 = models.Student(name = 'fty1', classes = 1, password = '******')
stu4 = models.Student(name = 'fty2', classes = 1, password = '******')
stu2 = models.Student(name = 'xjh', classes = 2, password = '******')
stu3 = models.Student(name = 'cw', classes = 3, password = '******')
stu5 = models.Student(name = 'lh', classes = 4, password = '******')
session.add_all([stu1,stu2,stu3,stu4,stu5])
#插入老师
tea1 = models.Teacher(name = 'a', collage = 1, password = '******')
tea2 = models.Teacher(name = 'b', collage = 1, password = '******')
tea3 = models.Teacher(name = 'c', collage = 1, password = '******')
tea4 = models.Teacher(name = 'd', collage = 2, password = '******')
tea5 = models.Teacher(name = 'e', collage = 2, password = '******')
tea6 = models.Teacher(name = 'f', collage = 3, password = '******')
session.add_all([tea1,tea2,tea3,tea4, tea5,tea6])
session.commit()
예제 #26
0
def load_data():
  global data
  data = json.load(open(os.path.join(os.path.dirname(__file__), 'data.json')))
  data['students'] = {s['name']:m.Student(**s) for s in data['students']}
  data['users'] = {u['name']:m.User(**u) for u in data['users']}
  data['interactions'] = map(lambda i: m.Interaction(**i), data['interactions'])