python – 防止Flask jsonify对数据进行排序

app = Flask(__name__)
app.config['JSON_SORT_KEYS'] = False

 

  • 5
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
由于篇幅较长,无法一次性贴出所有的代码,以下是论坛网站中常用的功能实现的代码示例,供参考。 1. 用户认证 ```python from flask_login import LoginManager, login_user, logout_user, login_required, current_user from werkzeug.security import generate_password_hash, check_password_hash from app.models import User login_manager = LoginManager() @login_manager.user_loader def load_user(user_id): return User.query.get(int(user_id)) def login(): if request.method == 'POST': username = request.form['username'] password = request.form['password'] remember = True if 'remember' in request.form else False user = User.query.filter_by(username=username).first() if not user or not check_password_hash(user.password, password): flash('Please check your login details and try again.') return redirect(url_for('auth.login')) login_user(user, remember=remember) return redirect(url_for('main.index')) return render_template('login.html') @login_required def logout(): logout_user() return redirect(url_for('main.index')) ``` 2. 帖子管理 ```python from app.models import Post, Tag, Category from flask import request, jsonify def create_post(): if request.method == 'POST': title = request.form['title'] content = request.form['content'] category_id = request.form['category_id'] tags = request.form['tags'] post = Post(title=title, content=content, category_id=category_id) for tag in tags: tag = Tag.query.filter_by(name=tag).first() if not tag: tag = Tag(name=tag) post.tags.append(tag) db.session.add(post) db.session.commit() return redirect(url_for('posts.post_detail', post_id=post.id)) else: categories = Category.query.all() tags = Tag.query.all() return render_template('create_post.html', categories=categories, tags=tags) def edit_post(post_id): post = Post.query.get(post_id) if request.method == 'POST': post.title = request.form['title'] post.content = request.form['content'] post.category_id = request.form['category_id'] tags = request.form['tags'] post.tags = [] for tag in tags: tag = Tag.query.filter_by(name=tag).first() if not tag: tag = Tag(name=tag) post.tags.append(tag) db.session.commit() return redirect(url_for('posts.post_detail', post_id=post_id)) else: categories = Category.query.all() tags = Tag.query.all() return render_template('edit_post.html', post=post, categories=categories, tags=tags) def delete_post(post_id): post = Post.query.get(post_id) db.session.delete(post) db.session.commit() return jsonify({'success': True}) ``` 3. 评论管理 ```python from app.models import Post, Comment from flask import request, jsonify def create_comment(post_id): post = Post.query.get(post_id) if request.method == 'POST': content = request.form['content'] comment = Comment(content=content, post=post, user=current_user) db.session.add(comment) db.session.commit() return redirect(url_for('posts.post_detail', post_id=post_id)) else: return render_template('create_comment.html', post=post) def edit_comment(comment_id): comment = Comment.query.get(comment_id) if request.method == 'POST': comment.content = request.form['content'] db.session.commit() return redirect(url_for('posts.post_detail', post_id=comment.post_id)) else: return render_template('edit_comment.html', comment=comment) def delete_comment(comment_id): comment = Comment.query.get(comment_id) db.session.delete(comment) db.session.commit() return jsonify({'success': True}) ``` 4. 搜索功能 ```python from app.models import Post from flask import request def search(): query = request.args.get('q') page = request.args.get('page') per_page = request.args.get('per_page') posts = Post.query.whoosh_search(query).paginate(page=page, per_page=per_page) return render_template('search.html', posts=posts) ``` 5. 排序、分页功能 ```python from app.models import Post, Category, Tag from flask import request def index(): page = request.args.get('page', 1, type=int) per_page = request.args.get('per_page', 5, type=int) category_id = request.args.get('category_id', type=int) tag_id = request.args.get('tag_id', type=int) sort_by = request.args.get('sort_by', 'new', type=str) if sort_by == 'new': posts = Post.query.order_by(Post.timestamp.desc()).paginate(page=page, per_page=per_page, error_out=False) elif sort_by == 'hot': posts = Post.query.order_by(Post.views.desc()).paginate(page=page, per_page=per_page, error_out=False) if category_id: posts = Post.query.filter_by(category_id=category_id).paginate(page=page, per_page=per_page, error_out=False) if tag_id: tag = Tag.query.get(tag_id) posts = tag.posts.paginate(page=page, per_page=per_page, error_out=False) categories = Category.query.all() tags = Tag.query.all() return render_template('index.html', posts=posts, categories=categories, tags=tags, sort_by=sort_by, category_id=category_id, tag_id=tag_id) ``` 这里只是针对常用功能的代码示例,具体实现还需要根据实际需求进行适当调整和优化。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

学术菜鸟小晨

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值