예제 #1
0
 def get(self):
     name = self.request.get('name', "")
     if name != "":
         s_id = Student().get_student_id(name_to_search=name)
         classes = ClassRoom().get_students_in_class_by_name(
             id_to_search=s_id)
         print "I AM HERE "
         print s_id
     else:
         people = {}
         people['students'] = Student.query().fetch(10)
         people['instructors'] = Instructor.query().fetch(10)
         self.response.write([people])
예제 #2
0
def load_student():
    """Load student from seed_data into database."""
    tablename = 'student'
    data = jsonify_seed_data(tablename)

    for item in data[tablename]:
        new_item = Student(name_first=item['name_first'],
                           name_last=item['name_last'],
                           rank_stripes=item['rank_stripes'],
                           rank_type_id=item['rank_type_id'],
                           program_id=item['program_id'])
        db.session.add(new_item)
    db.session.commit()
예제 #3
0
def add_student(student_username, student_password, student_name,
                student_location, student_grade, student_phone_number,
                student_img):
    print("Added a student!")
    session = DBSession()
    student = Student(username=student_username,
                      password=student_password,
                      name=student_name,
                      location=student_location,
                      grade=student_grade,
                      phone_number=student_phone_number,
                      img=student_img)
    session.add(student)
    session.commit()
예제 #4
0
def add_new_student():
    """uses posted information to add a new student to student"""

    #get posted information
    fname = request.json['fname']
    lname = request.json['lname']

    #add new student to students
    new_student = Student(fname=fname, lname=lname)

    db.session.add(new_student)
    db.session.commit()

    return redirect('/')
예제 #5
0
def student_create():
    if request.method == "GET":
        return render_template('student_create.html')
    elif request.method == "POST":
        student = Student(
            first_name=request.form['first_name'],
            last_name=request.form['last_name'],
            alias=request.form['alias'],
            grad_year=request.form['grad_year'],
            email=request.form['email'],
        )
        student.save()
        if "create_and_add" in request.form:
            return render_template('student_create.html')
        elif "create" in request.form:
            return redirect(url_for('student_view', student_pk=student.pk))
예제 #6
0
def delete():
    try:
        no = int(raw_input("输入学员编号:"))
    except TypeError:
        print '编号类型错误'
        delete()

    try:
        student = Student()
        student.id = no
        result = manager.delete(student)
        if result:
            print '删除[%s]成功' % no
    except KeyError:
        print '编号不存在'
        delete()
예제 #7
0
    def dodaj(s):
        try:
            s["id"] = str(gid())
            # provjera dal ima neki kolegij koji je došao i dal uopće postoji??
            # ako postoji, predaj ORM instancu dalje u sloj "model"
            if "kolegiji" in s:
                lista_kolegija = s["kolegiji"]
                lista_instanci = list(Kolegij[x] for x in lista_kolegija)
                s["kolegiji"] = lista_instanci

            # https://pythontips.com/2013/08/04/args-and-kwargs-in-python-explained/

            kreirani_student = Student(**s)
            return True, kreirani_student.id

        except Exception as e:
            return False, str(e)
예제 #8
0
def create_student(student_fname, student_lname, student_email, program_name,
                   instrument, student_password, student_phone, teacher_id):
    """Creates a new student record"""

    student = Student(student_fname=student_fname,
                      student_lname=student_lname,
                      student_email=student_email,
                      program_name=program_name,
                      instrument=instrument,
                      student_password=student_password,
                      student_phone=student_phone,
                      teacher_id=teacher_id)

    db.session.add(student)
    db.session.commit()

    return student
예제 #9
0
    def submit_data():
        get_id = input_id.get(1.0, "end-1c")
        student = Student()

        if student.load(get_id) == False:
            showerror(title="Error",
                      message="Student ID not found!",
                      icon="error")
        else:
            result = askquestion(title="Confirmation",
                                 message="Do you want to proceed?")
            if result == "yes":
                print(get_id)
                student.enrolled = study.studyname
                student.update()
                ui.AdminWindowStudyViewStudents.view_students(
                    window, return_function, study)
예제 #10
0
async def getAllCousWS():
    # 载入 Course
    courses = []
    # 初始化 SQL
    sql = '''
        SELECT *
        FROM C
    '''

    # 执行 SQL 并获取结果
    cursor.execute(sql)
    rs = cursor.fetchall()

    # 将结果 模型化并返回
    res = []
    if rs is not None:
        for i in rs:
            res.append(Course(**i))

    # 将 course list 转变为 Cws list
    cous = []
    for item in res:
        cous.append(CourseWithStudents(course=item, students=[]))

    # 载入 Students
    for item in cous:
        # 初始化 SQL
        sql = '''
            SELECT S.sno, sname, sex, age, sdept, logn , grade
            FROM S, SC
            WHERE S.sno =SC.sno
                AND SC.cno = %s
        ''' % (item.course.cno)

        # 执行 SQL 并获取结果
        cursor.execute(sql)
        rs = cursor.fetchall()

        # 将结果 模型化并返回
        if rs is not None:
            for i in rs:
                item.students.append(Student(**i))

    # 返回 Cws
    return cous
예제 #11
0
    def agregar(self): 
        # metodo del controller para solicitar datos e ingresar nuevo estudiante
        try:
            userInput = str(input("Desea agregar un estudiante? Y/N")) 
            # dentro de un try , asi como cualquier interaccion 
            # con el mundo exterior debe ser anti-errores

            if userInput=='Y':
                datos_newStudent = input("Ingrese el codigo, el nombre, edad y sexo separado por coma-> COD,Nombre Apellido [Sin espacios al inicio]: ").split(',') 
                # con split puedo capturar varios inputs del usuario
                estudiante_nuevo = Student(datos_newStudent[0], datos_newStudent[1], datos_newStudent[2],datos_newStudent[3]) 
                # accedo al indice 0 y 1 para capturar los datos de mi nuevo estudiante
                self.addStudent(estudiante_nuevo)
                # se crea una instancia con los datos capturados
 
        except:
            # para capturar errores
            self.vista.mensaje("Error en la entrada del usuario") 
def generateStudent():
    person = generatePerson()

    student = Student()
    student.startYear = datetime.date(random.randint(2012, 2024), 1, 1)
    student.studyCouncelor = random.choice(counselers).teacherID
    student.enrolled = random.choice(studies).studyname
    student.personID = person.personID
    student.insert()

    person.userName = (person.lname + str(student.studentID))
    person.userPass = "******"
    person.update()

    for course in random.sample(courses, 4):
        student.enrollInCourse(course.courseID)

    return student
예제 #13
0
async def getAllStu():
    # 初始化 SQL
    sql = '''
        SELECT *
        FROM S
    '''

    # 执行 SQL 并获取结果
    cursor.execute(sql)
    rs = cursor.fetchall()

    # 将结果 模型化并返回
    res = []
    if rs is not None:
        for i in rs:
            res.append(Student(**i))

    return res
예제 #14
0
def enrollNewStudent(params, reg, id):
    """ Generate a new 9th grade Freshman """
    # generate cheasy names and student data
    skippable = params["skippable"]
    age = 14 if random.random() < params["lowAge"] else 15
    lname = random.choice(randomNames) + ("s" if random.random() > 0.25 else "")
    s = Student(id, random.choice(randomNames), lname, age, 9)
    s.beginNewYear()
    s.enroll(reg.getCourse(name="PE"))
    enrolledCount = 1
    if random.random() < params["band"]:
        s.enroll(reg.getCourse(name="Band"))
        enrolledCount += 1
    req, opts = suggestClasses(reg, s, ignoreElectives=False)
    honorsChance = params["honors"]
    def asHonors(c):
        nonlocal honorsChance
        res = c.hasHonors and random.random() < honorsChance
        if res:
            honorsChance *= 1 + params["honorsCompound"]
        return res
    while enrolledCount < params["maxCourses"] and len(req) > 0:
        selected = req.pop()
        if selected.name in skippable:
            honorsResult = random.random() < honorsChance
            honorsChance *= (1 + params["honorsCompound"])**honorsResult
            if honorsResult:
                # give student credit for the course
                s.passed(selected, True, overrideHonors=True)
                selected = next(i for i in reg.getCoursesRequiring(selected)
                                if i.canEnroll(s))
                # enroll them in the next course
                s.enroll(selected, random.random() >= params["honorsFallOut"])
                enrolledCount += 1
                continue
        honorsResult = asHonors(selected)
        s.enroll(selected, honorsResult)
        enrolledCount += 1
    while enrolledCount < params["maxCourses"] and len(opts) > 0:
        selected = opts.pop(randint(0, len(opts)-1))
        # electives probably won't have honors versions, but just in case
        s.enroll(selected, asHonors(selected))
        enrolledCount += 1
    return s
예제 #15
0
def admin_add_user(role, fields):
    if role.lower() == 'student':
        user = Student()
    elif role.lower() == 'teacher':
        user = Teacher()
    elif role.lower() == 'admin':
        user = Admin()
    else:
        raise APIError('Invalid role')

    fields['password'] = hash_password(fields['password'])
    for key, value in fields.items():
        if not value:
            continue
        user.__setattr__(key, value)

    db.session.add(user)
    db.session.commit()
    return user.dict
예제 #16
0
def update():
    try:
        no = int(raw_input("输入学员编号:"))
    except TypeError:
        print '编号类型错误'
        update()

    info = raw_input('请输入学员信息(姓名,性别,年龄,所在地,qq号)各项信息之间用逗号分隔:')
    if ',' in info:
        columns = info.split(',')
    elif ',' in info:
        columns = info.split(',')

    columns = map(str.strip, columns)

    columns.insert(0, no)
    student = Student(*columns)

    manager.update(student)
예제 #17
0
def create_student(student_fname, student_lname, student_email, program_name,
                   instrument, student_password, student_phone, teacher_id):
    """Creates a new student record"""

    student = Student(
        student_fname=student_fname,
        student_lname=student_lname,
        student_email=student_email,
        program_name=program_name,
        instrument=instrument,
        student_password=student_password,
        student_phone=student_phone,
        teacher_id=teacher_id  # easier to pass primary keys than entire objects
    )

    db.session.add(student)
    db.session.commit()

    # If you have issues with the student's data, consider refreshing the student object
    return student
예제 #18
0
파일: main.py 프로젝트: rj172/form
    def get(self):
        file = open('header.html')
        self.response.write(file.read())
        en = self.request.get('tfname')
        egen = self.request.get('gender')
        edob = self.request.get('dob')
        emobile = self.request.get('mobile')
        eemail = self.request.get('email')
        estream = self.request.get('stream')

        #creating employee instance to store in google ndb
        std = Student()
        std.EName=en
        std.EGender = egen
        std.Edob = edob
        std.EMobile = emobile
        std.EEmail=eemail
        std.EStream = estream
        #putting into google ndb
        key = std.put()
        self.response.write("<h3> Your response have been submitted <a  style='color:red;' href='/form'>click here</a> to submit another respnse </h3>")
예제 #19
0
def student_register_process():
    """Process registration."""

    # Get form variables
    class_code = request.form["class-code"]

    password = request.form["password"]
    fname = request.form["fname"]
    lname = request.form["lname"]

    username = fname[0].lower() + lname.lower()

    #Query to get classroom object from registration code
    class_query_object = Classroom.query.filter_by(
        registration_code=class_code).one()

    if class_query_object is None:
        #Flash registration denial
        flash("Class does not exist.  Please check your registration code.")

        #Redirect back to student register page
        return redirect("/student-register")
    else:
        #Create new student object
        new_student = Student(username=username,
                              password=password,
                              fname=fname,
                              lname=lname,
                              class_id=class_query_object.class_id)

        #Add to database and commit
        db.session.add(new_student)
        db.session.commit()

        #Flash registration confirmation, log student in, and redirect to student profile
        flash("Student {} {} added.".format(fname, lname))
        session["student_id"] = new_student.student_id
        return redirect("/students/{}".format(session['student_id']))
예제 #20
0
def load_students(students_filename):
    """Load students."""

    print "Student"

    for i, row in enumerate(open(students_filename)):
        row = row.rstrip()

        username, password, fname, lname, class_id = row.split("|")

        student = Student(username=username,
                          password=password,
                          fname=fname,
                          lname=lname,
                          class_id=class_id,
                          avatar_id=i + 1)

        db.session.add(student)

        if i % 10 == 0:
            print i

    db.session.commit()
예제 #21
0
        "student_no": "c4444",
        "mod_code": "cmpu1003",
    },
    {
        "student_no": "c4444",
        "mod_code": "cmpu1004",
    },
    {
        "student_no": "c4444",
        "mod_code": "cmpu1005",
    },
]

for student in students:
    try:
        new_student = Student(**student)
        session.add(new_student)
        session.commit()
    except:
        pass
for module in modules:
    try:
        new_module = Module(**module)
        session.add(new_module)
        session.commit()
    except:
        pass

for entry in student_modules:
    try:
        new_entry = StudentModule(**entry)
예제 #22
0
def add_student(email, first_name, last_name, mobile, date_of_birth, gender,
                nationality):
    student = Student(email, first_name, last_name, mobile, date_of_birth,
                      gender, nationality)
    session.add(student)
    session.commit()
예제 #23
0

    # Check to see if your student exists, if so, skip
    if my_student := session.query(Student).filter_by(student_email=rec['student_email']).first():
        print(f'Student {my_student} already exists. Skipping')
        continue

    #  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -

    # Get your teacher – and remove from the record
    teacher_email = rec.pop('teacher_email')
    my_teacher = session.query(Teacher).filter_by(teacher_email=teacher_email).first()


    # Instantiate your student
    my_student = Student(**rec)

    # Add your student to the session (get ready to be shunted to db)
    session.add(my_student)

    # Assign the student to the teacher
    # this will automatically assign the teacher id to the student
    my_student.teacher = my_teacher

    # Now what happens?
    # Try committing
    session.commit()

    # Use the following to determine if all the attributes were correctly set
    # print(my_student.__dict__)
예제 #24
0
    oneClass.save()

    print "成功获取课表"


if __name__ == "__main__":

    # 连接数据库,建立数据表
    try:
        db.connect()
        db.create_tables([Student,Code, ClassSchedule,Class,YearGrade,TermGrade,OneLessonGrade])
    except:
        pass

    # 查找学生,若不存在则创建账号
    try:
        student = Student.get(Student.stuNumber == "你的学号")
    except Exception ,e:
        student = Student(stuNumber="你的学号", password="******")#用自己的教务系统账号密码
        student.save()
        print e

    # 实例化爬虫
    login("你的学号","你的密码")
    getStudentInfo()
    getStudentGrade()
    getClassSchedule()



예제 #25
0
파일: spider.py 프로젝트: winkxx/ZhengFang
        print("绩点计算完毕")


if __name__ == "__main__":

    # 连接数据库,建立数据表
    try:
        db.connect()
        db.create_tables([
            Student, ClassSchedule, Class, YearGrade, TermGrade, OneLessonGrade
        ])
    except:
        pass

    # 查找学生,若不存在则创建账号
    try:
        student = Student.get(Student.studentnumber == "xxxxxxxx")
    except Exception as e:
        student = Student(studentnumber="xxxxxxxx",
                          password="******")  # 用自己的教务系统账号密码
        student.save()

    spider = ZhengFangSpider(student,
                             baseUrl="http://202.195.144.168/jndx")  # 实例化爬虫
    spider.loginWithOutCode()
    if student.name is None:
        spider.getStudentBaseInfo()
    spider.getStudentGrade()
    spider.calculateOneTermAndOneYearGPA()
    spider.getClassSchedule()
예제 #26
0
 def dodaj(s):
     try:
         s = Student(**s)
         return True, None
     except Exception as e:
         return False, str(e)
예제 #27
0
from model import Student

stu = Student()
stu.say()
예제 #28
0
def add_student(student_name, student_year):

    student_object = Student(name=student_name, year=student_year)
    session.add(student_object)
    session.commit()
예제 #29
0
def student(id):
    if current_user.role_name != 'AdminUser':
        return render_error(403)
    if id == 'new':
        s = Student()
    else:
        try:
            id = int(id)
        except ValueError:
            return render_error(400)
        s = db.session.query(Student).filter(Student.id == id).one_or_none()
        if s is None:
            return render_error(404)

    form = StudentForm(request.form if request.method == 'POST' else None, obj=s)  # WFORMS-Alchemy Объект на форму

    if form.button_delete.data:
        form.validate()
        if db.session.query(AttMark).filter(AttMark.student_id == s.id).count() > 0:
            form.button_delete.errors.append('Невозможно удалить студента, у которого есть оценки за аттестации')

        if len(form.button_delete.errors) == 0:
            db.session.delete(s)
            db.session.commit()
            db.session.flush()
            return redirect(url_for('students'))

    if form.button_save.data and form.validate():
        form.populate_obj(s) #WFORMS-Alchemy с формы на объект
        if s.status == "alumnus":
            s.stud_group = None
            s.expelled_year = None
            s.semester = None
            if s.alumnus_year is None:
                s.alumnus_year = datetime.now().year

        if s.status in ("expelled", "academic_leave"):
            s.stud_group = None
            s.alumnus_year = None
            if s.expelled_year is None:
                s.expelled_year = datetime.now().year

        if s.stud_group is not None:
            s.status = "study"
            s.semester = s.stud_group.semester
        else:
            s.group_leader = False

        if s.status == "study":
            s.alumnus_year = None
            s.expelled_year = None

        form = StudentForm(obj=s)

        if form.validate():
            if s.status != "alumnus" and s.semester is None:
                form.semester.errors.append("Укажите семестр")
            if len(form.semester.errors) == 0:
                db.session.add(s)
                db.session.commit()
                if id == 'new':
                    db.session.flush() # ???
                if s.id != id:
                    return redirect(url_for('student', id=s.id))

    return render_template('student.html', student=s, form=form)
예제 #30
0

# Model
device = torch.device('cuda' if (args.cuda and torch.cuda.is_available()) else 'cpu')

deep_punctuation = DeepPunctuation(args.pretrained_model, freeze_bert=args.freeze_bert, lstm_dim=args.lstm_dim)
deep_punctuation.to(device)
criterion = nn.CrossEntropyLoss()
mse = nn.MSELoss()
# optimizer = torch.optim.Adam(deep_punctuation.parameters(), lr=args.lr, weight_decay=args.decay)
deep_punctuation.load_state_dict(torch.load(model_save_path, map_location=torch.device(device)))

with open(args.student) as f:
    cfg = json.load(f)

studet_deep = Student(cfg)
studet_deep.to(device)
criterion = nn.CrossEntropyLoss()
optimizer = torch.optim.Adam(studet_deep.parameters(), lr=args.lr, weight_decay=args.decay)

def validate(data_loader):
    """
    :return: validation accuracy, validation loss
    """
    num_iteration = 0
    studet_deep.eval()
    correct = 0
    total = 0
    val_loss = 0
    with torch.no_grad():
        for x, y, att, y_mask in tqdm(data_loader, desc='eval'):