Flask-web开发【get和post】

get

使用场景:如果只对服务器获取数据,并没有对服务器产生任何影响。
传参:放在url中,以?的形式来指定key和value的。
例子:
网页:




    
    Title


dsdv


后台:

@app.route('/search/')
def search():
    q = request.args.get('q')
    print(u'%s' % q)

post

使用场景:对服务器产生影响。
传参:通过form data的形式。
例子:
网页:




    
    Title


用户名:
密码:

后台:

@app.route('/login/',methods=['GET','POST'])
def login():
    if request.method == 'GET':
        return render_template('login.html')
    else:
        username = request.form.get('username')
        password = request.form.get('password')

g对象

  1. 用处:专门用来保存用户数据的。
  2. g对象在一次请求中,都是可以使用的。

钩子函数(hook)

  1. before_request:在请求之前执行的。是一个装饰器。视图函数之前执行。
    用来处理cookie
@app.before_request
def ll():
    if session.get('username'):
        g.username = session.get('username')

在使用cookie的地方,例如编辑个人信息的。

@app.route('/edit/')
def edit():
    if hasattr(g,'username'):
        return u'Sucess'
    else:
        return redirect(url_for('login'))
  1. context_processor:
  2. 作用:上下文处理器。返回值为一个字典。key会被模板中当成变量来渲染。
    在所有的界面可以使用。
@app.context_processor
def mys():
    username = session.get('username')
    if username:
        return {'username':username}

你可能感兴趣的:(Flask-web开发【get和post】)