def register(): if request.method == 'GET': return render_template('register.html') username = request.form.get('username') password = request.form.get('password') nickname = request.form.get('nickname') age = request.form.get('age') sex = request.form.get('sex') height = request.form.get('height') weight = request.form.get('weight') action = request.form.get('button') if action == 'tologin': return redirect(url_for('login')) if not username: flash('请填写用户名') return render_template('register.html') elif not password: flash('请填写密码') return render_template('register.html') elif not nickname: flash('请填写昵称') return render_template('register.html') elif not sex: flash('请填写性别') return render_template('register.html') elif not age: flash('请填写年龄') return render_template('register.html') elif not height: flash('请填写身高') return render_template('register.html') elif not weight: flash('请填写体重') return render_template('register.html') age = int(age) height = float(height) weight = float(weight) sex = 'm' if '男' in sex else 'f' self_infos = get_healthy_stats(sex, age, height) family_numbers = 0 family_members = [] for key in list(request.form.keys()): if 'relationship_' in key: index = int(key.replace('relationship_', '')) c_key = 'relationship' c_value = request.form.get(key) elif 'age_' in key: index = int(key.replace('age_', '')) c_key = 'age' c_value = int(request.form.get(key)) elif 'sex_' in key: index = int(key.replace('sex_', '')) c_key = 'sex' c_value = request.form.get(key) c_value = 'm' if '男' in c_value else 'f' elif 'height_' in key: index = int(key.replace('height_', '')) c_key = 'height' c_value = float(request.form.get(key)) elif 'weight_' in key: index = int(key.replace('weight_', '')) c_key = 'weight' c_value = float(request.form.get(key)) else: continue while len(family_members) < index+1: family_members.append(dict()) family_members[index][c_key] = c_value family_members.append({ 'relationship': '本人', 'age': age, 'sex': sex, 'height': height, 'weight': weight, 'need_protein': self_infos['np'], 'need_energy': self_infos['ne'], 'need_fat': self_infos['nf'] }) for member in family_members: age = member['age'] sex = member['sex'] height = member['height'] weight = member['weight'] stats = get_healthy_stats(sex, age, height) member['need_protein'] = stats['np'] member['need_energy'] = stats['ne'] member['need_fat'] = stats['nf'] new_user = User(username, db, nickname=nickname) if new_user.exists(): flash('用户名 {} 已被注册'.format(username)) return render_template('login.html', register=True) else: new_user.password(password) sql = "INSERT INTO `SuperMenu`.`family_member` (`user`, `relationship`, `sex`, `age`, `need_energy`, `need_protein`, `need_axunge`) VALUES ('{}', '{}', '{}', '{}', '{}', '{}', '{}');" for member in family_members: db.execute(sql.format( username, member['relationship'], member['sex'], member['age'], member['need_energy'], member['need_protein'], member['need_fat'] )) flash('{} 注册成功'.format(username)) return redirect(url_for('login'))