def writing(): if request.method == 'POST': title = request.form['title'] summary = request.form['summary'] body = request.form['content'] # tag = request.form['tag'] if 'theme-img' in request.files: image = request.files['theme-img'] image_name = image.filename new_image_name = unique_filename(image_name) image_path = os.path.join(app.config['UPLOAD_FOLDER'], new_image_name) image.save(image_path) theme_img = url_for('uploaded_file', filename=new_image_name) thumbnail_img_name = create_thumbnail_and_save(image_path, image_name, app.config['MAX_POST_IMG_WIDTH']) thumbnail_img = url_for('uploaded_file', filename=thumbnail_img_name) else: theme_img = app.config['DEFAULT_POST_IMG'] thumbnail_img = app.config['DEFAULT_POST_THUMB_IMG'] # tag = Tag(name=tag, creator_id=current_user.id) post = Post(title=title, theme_img=theme_img, thumbnail_img=thumbnail_img, summary=summary, body=body, user_id=current_user.id) # post.tags.append(tag) post.save() return redirect(url_for('blog.article', post_id=post.id)) return render_template('profile/writing.html')
def _edit_profile(): """ Edit the personal information :return: """ pyname = current_user.pyname user = User.query.filter_by(pyname=pyname).first() new_nickname = request.form['new_nickname'] new_gender = request.form['new_gender'] new_about_me = request.form['new_about_me'] zoom = request.form['zoom'] x_offset = request.form['x_offset'] y_offset = request.form['y_offset'] width = request.form['width'] height = request.form['height'] if 'new_avatar' in request.files: new_avatar = request.files['new_avatar'] filename = unique_filename(new_avatar.filename) filepath = os.path.join(app.config['UPLOAD_FOLDER'], filename) new_avatar.save(filepath) im = Image.open(filepath) def get_raw_pixel(pixel, z=zoom): return int(fabs(round(float(pixel)/(float(z))))) raw_x = get_raw_pixel(x_offset) raw_y = get_raw_pixel(y_offset) raw_width = get_raw_pixel(width) raw_height = get_raw_pixel(height) box = (raw_x, raw_y, raw_x+raw_width, raw_y+raw_height) region = im.crop(box) max_width = app.config['MAX_AVATAR_IMG_WIDTH'] if raw_width > max_width: region = region.resize((max_width, max_width), Image.ANTIALIAS) region.save(filepath) user.avatar = url_for('uploaded_file', filename=filename) else: pass if user.nickname != new_nickname: user.nickname = new_nickname new_pyname = ''.join(lazy_pinyin(new_nickname, errors='replace')) new_pyname = User.make_unique_pyname(new_pyname) user.pyname = new_pyname if new_gender == 'female': gender = 0 elif new_gender == 'male': gender = 1 else: gender = 10 user.gender = gender user.about_me = new_about_me user.save() new_profile_data = {'nickname': new_nickname, 'gender': new_gender, 'about-me': new_about_me, 'avatar': current_user.avatar} return json.dumps(new_profile_data)