关于Flask框架的一些基础应用

    xiaoxiao2022-07-13  154

    #添加分类

    @app.route('/add_cate',methods=['GET','POST']) def add_cate(): if request.method == 'POST': name = request.form.get('name') new_cate = Cate(name=name) try: db.session.add(new_cate) flash('添加成功') except Exception as e: flash('添加失败') return render_template('add_cate.html') <form action="" method="post"> 商品分类:<input type="text" name="name"> <br> <input type="submit" value="确定"> <br> </form> {% for f in get_flashed_messages() %} {{ f }} <br> {% endfor %}

    添加分类–图片–富文本

    @app.route('/add_goods',methods=['GET','POST']) def add_goods(): cates = Cate.query.all() if request.method == 'POST': c_id = request.form.get('c_id') name = request.form.get('name') num = request.form.get('num') price = request.form.get('price') pic = request.files.get('pic') content = request.form.get('content') pic_url = '' if pic: pic_url = xins.save(pic) try: new_goods = Goods(name=name,num=num,price=price,pic=pic_url,content=content,c_id=c_id) db.session.add(new_goods) flash('添加成功') return redirect(url_for('add_goods')) except Exception as e: flash('添加失败') return render_template('add_goods.html',cates=cates) <form action="" method="post" enctype="multipart/form-data"> 产品分类: <select name="c_id"> {% for foo in cates %} <option value="{{ foo.id }}">{{ foo.name }}</option> {% endfor %} </select> <br> 产品名称:<input type="text" name="name"> <br> 产品售量:<input type="text" name="num"> <br> 产品价格:<input type="text" name="price"> <br> 产品图片:<input type="file" name="pic"> <br> 产品内容:<input type="text" name="content" id="rich_content"> <br> <input type="submit" value="确认"> <br> </form> {% for foo in get_flashed_messages() %} {{ foo }} <br> {% endfor %}

    添加商品到分类下

    @app.route('/add_goods',methods=['GET','POST']) def add_goods(): cates = Cate.query.all() if request.method == 'POST': name = request.form.get('name') cate_id = request.form.get('c_id') new_goods = Goods(name=name,cate_id=cate_id) try: db.session.add(new_goods) flash('添加成功') except Exception as e: flash('添加失败') return render_template('add_goods.html',cates=cates) <form action="" method="post"> 商品分类 <select name="c_id"> {% for foo in cates %} <option value="{{ foo.id }}">{{ foo.name }}</option> {% endfor %} </select> <br> 商品名称:<input type="text" name="name"> <br> <input type="submit" value="确认"> <br> </form> {% for f in get_flashed_messages() %} {{ f }} <br> {% endfor %}

    展示商品–倒序

    @app.route('/all_goods') def all_goods(): goodss = Goods.query.filter().order_by(Goods.id.desc()).all() return render_template('all_goods.html',goodss=goodss)

    点击某一分类显示此分类下所有商品

    @app.route('/cate_goods') def cate_goods(): cate_id = request.args.get('cate_id') goodss = Goods.query.filter(Goods.cate_id==cate_id).order_by(Goods.id.desc()).all() return render_template('cate_goods.html',goodss=goodss)

    删除单个商品

    @app.route('/delete_goods') def delete_goods(): cate_id = request.args.get('cate_id') print(cate_id) one_cate = Goods.query.get(cate_id) print(one_cate) try: db.session.delete(one_cate) flash('删除成功') except Exception as e: flash('删除失败') return redirect(url_for('all_goods'))

    批量删除多个商品

    @app.route('/delete_goodss',methods=['GET','POST']) def delete_goodss(): if request.method == 'POST': ids = request.form.getlist('cate_id') for i in ids: one_cate = Goods.query.get(i) db.session.delete(one_cate) return redirect(url_for('all_goods')) <form action="{{ url_for('delete_goodss') }}" method="post"> {% for foo in goodss %} <input type="checkbox" value="{{ foo.id }}" name="cate_id">{{ loop.index }}---{{ foo.name }} <a href="{{ url_for('delete_goods',cate_id=foo.id) }}">删除</a> <br> {% endfor %} <input type="submit" value="批量删除"> </form> {% for f in get_flashed_messages() %} {{ f }} <br> {% endfor %}

    添加分类图片

    @app.route('/append_cate',methods=['GET','POST']) def append_cate(): if request.method == 'POST': name = request.form.get('name') pic = request.files.get('pic') pic_url = '' if pic: pic_url = xins.save(pic) try: new_cate = Cate(name=name,pic=pic_url) db.session.add(new_cate) flash('添加成功') except Exception as e: flash('添加失败') return render_template('append_cate.html') <form action="" method="post" enctype="multipart/form-data"> 产品名称:<input type="text" name="name"> <br> 产品图片:<input type="file" name="pic"> <br> <input type="submit" value="确认添加"> <br> </form> {% for foo in get_flashed_messages() %} {{ foo }} <br> {% endfor %}

    分页

    @app.route('/goods_list') def goods_list(): page = int(request.args.get('page',1)) goodss = Goods.query.paginate(page,2) return render_template('goods_list.html',goodss=goodss) <head> <meta charset="UTF-8"> <title>产品列表</title> <script type="text/javascript" src="../static/web/js/jquery.js" ></script> <link rel="stylesheet" href="../static/web/css/jquery.pagination.css"> <script type="text/javascript" src="../static/web/js/jquery.pagination.min.js"></script> </head> <body> {% for foo in goodss.items %} {{ foo.id }}、{{ foo.goods_name }} <br> {% endfor %} <div id="page"></div> <script> $('#page').pagination( { currentPage: {{ goodss.page }}, totalPage: {{ goodss.pages }}, callback: function (page) { window.location.href='?page=' + page; } } ) </script> </body>

    搜索分类

    @app.route('/show_cate') def show_cate(): kw = request.args.get('kw','') cates = Cate.query.filter(Cate.name.like('%'+kw+'%')).all() return render_template('show_cate.html',cates=cates) {% for foo in cates %} <a href="{{ url_for('cate_goods',c_id=foo.id) }}">{{ foo.name }}</a> {% endfor %} <form action="" > <input type="text" value="{{ kw }}" name="kw"> <input type="submit" value="搜索"> </form>

    注册

    @web_user_blue.route('/reg',methods=['GET','POST']) def reg(): if request.method == 'POST': name = request.form.get('name') pwd = request.form.get('pwd') pwd1 = request.form.get('pwd1') if not all([name,pwd,pwd1]): flash('参数不全,请重新输入') elif len(pwd) < 6: flash('密码长度不能小于6位') elif pwd != pwd1 : flash('两次密码不同,请重新输入') else: try: new_user = User(name=name,pwd=pwd) db.session.add(new_user) flash('注册成功') return redirect(url_for('web_user.login')) except Exception as e: flash('注册失败') return render_template('web/reg.html') <form action="" method="post"> 用户名称:<input type="text" value="" name="name"> <br> 用户密码:<input type="password" value="" name="pwd" placeholder="密码长度不能小于6位"><br> 确认密码:<input type="password" value="" name="pwd1"><br> <input type="submit" value="确认注册"><br> </form> {% for foo in get_flashed_messages() %} {{ foo }}<br> {% endfor %}

    登录

    @web_user_blue.route('/login',methods=['GET','POST']) def login(): if request.method == 'POST': name = request.form.get('name') pwd = request.form.get('pwd') code = request.form.get('code').lower() if not all([name,pwd]): flash('参数不全') else: text = session.get('code').lower() if text != code: flash('验证码不正确') else: one_user = User.query.filter(User.name==name).first() if not one_user: flash('用户不存在') else: if one_user.pwd != pwd : flash('密码不正确') else: session['id'] = one_user.id session['name'] = one_user.name flash('登录成功') return redirect(url_for('web_index.index')) return render_template('web/login.html') {% block script %} <script type="text/javascript" src="../../static/web/js/login.js"></script> {% endblock script %} </head> <body> <form action="" method="post"> 用户名称:<input type="text" value="" name="name"> <br> 用户密码:<input type="password" value="" name="pwd"> <br> 验证密码:<input type="text" name="code"><br> <img src="/web_user/generate_code" onclick="code()" class="code" /> <br> <input type="submit" value="确认登录"> <br> </form> {% for foo in get_flashed_messages() %} {{ foo }}<br> {% endfor %}

    验证码

    from utils.captcha.captcha import captcha @web_user_blue.route('/generate_code') def generate_code(): name,text,image_url = captcha.generate_captcha() session['code'] = text response = make_response(image_url) response.headers['Content-Type'] = 'image/jpg' return response

    退出

    @web_user_blue.route('/logout') def logout(): session.pop('id',None) session.pop('name',None) flash('退出成功') return redirect(url_for('web_user.login'))
    最新回复(0)