2024-09-19学习记录

今天读了下《学习究竟是什么》,里面提到的刻意练习让我醍醐灌顶

我平时的学习总是过于走马观花,看完一遍后就不再去刻意的回顾和练习,我决定引以为戒

今天针对之前所看的Flask内容进行刻意的回顾练习,明天再对着这些问题重新进行自问自答

1.如何写出一个最简单的Flask程序


首先是项目最开始

from flask import Flask

app=Flask(__name__)

然后需要注意路由匹配规则的写法@app.route('/index')


2.分别在Flask中使用cookie和session

简单概括就是

使用cookie:需要先response=make_response(redirect(url_for(index))),

                    然后response.set_cookie('name':name)

                        最后return response

使用session:需要先设置秘钥app.secret_ket=''

                    然后session['logged_in']=True


3.如何重定向回上一个页面

方法1

redirect(request.referrer)

方法2

return url_for('..',next=request.full_path)

之后想要重定向时

return redirect(request.args.get('next',url_for('hello'))

4.如何返回json数据

使用jsonify()即可


5.如何自定义过滤器、

@app.template_filter


6.如何实现局部模板

{% include '_header.html' %}


7.如何实现宏?

{% marco text(a) %}

{% endmarco %}

from marco.html import text

8.如何实现模板继承

基模板

{% block content %}

{% endblock %}

子模板

{% extends 'base.html' %}


9.如何定义WTForms

class xxx(FlaskForm):

useranme=StringField('username',validator=[DataRequired])

....

submit=SubmitField('Log in')


10.如何渲染表单

<form>

{{ form.csrt_token }}

{{ form.username.label }} {{ form.username() }}



11.如何验证表单,如何拿到数据

在客户端可以先用required来验证

在服务端使用validate_on_submit

拿数据使用username=form.username.data


12.渲染错误消息

{% for message in form.username.error %}

{{message}}

{% endfor %}


13.自定义验证器

class XXXForm(FlaskForm):

...

    def validate_answer(form,field):

...


14.客户端限制文件类型

使用accept='.jpg,.png'

15.服务端创建文件上传表单

class ...form(FlaskForm):

    photo=FileField('photo',validators=[FileRequired(),FileAllowed(['jpg,png'])])


16.如何限制文件上传大小

app.config['MAX_CONTENT_LENGTH']=3*1024*1024


17.如何处理文件名

(1)保持原名

(2)过滤

使用secure_filename()

(3)统一重命名random_filename()


18.如何处理文件路径

app.config['UPLOAD_PATH']=os.path.join(app.root_path,'uploads')

在保存的时候

f.save(app.config['UPLOAD_PATH'],filename)


19.如何实现多文件上传

在客户端,input标签里加上multiple

在表单里

photo=MultipleFileFields()

拿数据的时候

for f in request.files.getlist(''photo)

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容