python3.7+flask+web学习笔记5

Flask的数据交互

  • Flask form表单使用

  • Flask cookie使用

  • session的使用

1.Flask form表单使用

在web中form表单最经常使用的一部分,

表单处理中会用request.from的请求,用来提交表单使用。


def get(self):
return render_template("index.html")
def post(self):
username=request.form.get("username")
password=request.form.get("pwd")
if username=='keny88888' and password =="keny88888":
return "用户正确登录"
else:
return '用户或者密码错误!请重新登录!'
app.add_url_rule('/login',view_func=LoginView.as_view('loginview'))

代码中暂时不考虑css的配置,也是可以运行起来。这里没有考虑到刷表单的情况。

考虑刷表单的情况,可以用flask_wtf进行提交

from flask_wtf import Form

如果没有编译过,可以进行pip install flask-wtf安装,启用csrf的保护。

引入form元素父类

from wtfomrs import StringFiled.passwordField

class Login(Form):

    name=StringField('name',valuidates[DataRequired(message='用户名不可以为空'),Length(6,16,message='长度在6-16')],render_kw={'placeholder':'输入用户名'}

...

每次提交前都验证一下;

2.Cookie的使用

Flask cookie使用,cookie的用法

set_cookie(name,value,expire,path,domain,secure)

2.1设置cookie,response和或者是设置表单头。

@app.route('/')

def set_cookie():

   resp=Response("设置Cookie")

   resp.set_cookie("username","keny88888",max_age=1800) #60*30 30分钟失效

   return resp

#设置后,可以获取get_cookie

@app.route('/get_cookie')

def get_cookie():

    if request.cookies.get('username'):

         username= request.cookies.get('username')   #获取cookie的值;

     .....

如果需要删除cookie;可以自己用resp.delete_cookie('username')

3.Session的使用

Flask的Session是通过加密之后放到Cookie中。加密使用秘钥解密,会用到Secret_key设置24为字符,使用时候设置一个随机字符串

#设置Session

from flask import Flask ,session

import os

app.config['SECRET_KEY']=os.urandom(24) #设置一个随机字符串 ,SECRET_KEY配置#设置有效时间

app.config['permanent_session_lifetime']= timedetla(days=3) #设置3天有效

@app.route('/')

def set_session():

    session['username']='keny88888'

    reture 'set session ok!'  

获取Session

@app.route('/get_session')

def get_session():

     username=session.get('username') 

     return username #

删除Session

    session.pop('username') #弹出username,删除

发布了134 篇原创文章 · 获赞 12 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/keny88888/article/details/103584186