python框架中flask知识点总结

yipeiwu_com5年前Python基础

有很久没有更新我的博客了,在学习flask去了,别人都说flask不难,其实现在我也这么觉得,但是在刚接触的时候还是有点吃力的。

在学习的过程中查阅了不少,也了解了许多,今天想做个总结。。。以免觉得学了那么久什么都没学到,还有防止以后忘记。

一.关于装饰器,路由

最开始接触的时候觉得好神奇,只会照着敲不知道怎么自己用起来

@app .route(‘/')

def hello:

print(‘hello')

注意:1.只有@这个东西是固定的,app 是可以换的,这与蓝本中的定义有关,blueprint给了xx之后在import和@的时候就是xx哦

2.@下面的def就是你会被装饰的函数,至于和谁装饰,这就与route有关了

3.‘/'也是一个有趣的东西,现在它还很单调无味,等到东西多的时候可以自己加这玩/post,/login。。。在之后有登入的时候,还可以变成登入用户的/post/<name>,具体操作不告诉你,可以思考下,不难。

二.模板

1.我们在子模板的开头定义了”{% extend ‘xx' %}”语句来声明继承,此后在子模板中由”{% block block_name %}”和”{% endblock %}”所包括的语句块,将会替换父模板中同样由”{% block block_name %}”和”{% endblock %}”所包括的部分。

2.如果父模板中的块里有内容不想被子模板替换怎么办?我们可以使用{{super( )}}

3.块内语句的作用域:默认情况下,块内语句是无法访问块外作用域中的变量。如果你想在块内访问这个块外的变量,你就需要在块声明时(父)添加”scoped”关键字。

4.宏{% macro macro_name() %}{% endmacro %}类似于函数

5.import和include就是包含 (Include),使用的方法就是”{% include %}”语句。其功能就是将另一个模板加载到当前模板中,并直接渲染在当前位置上。它同导入”import”不一样,”import”之后你还需要调用宏来渲染你的内容,”include”是直接将目标模板渲染出来。它同block块继承也不一样,它一次渲染整个模板文件内容,不分块。

三.表单和数据库

大坑啊

1.提交表单大多用POST
发送请求的最后一个请求如果是包含表单数据的POST请求的话,刷新页面会再次提交表单,这样容易提交,例如,之前是下订单的请求,刷新以后可能是再下一次订单。所以最好别让POST作为最后一个请求。

2.可以用重定向 redirect()有时候和url_for()一起玩,url_for()参数可以是被装饰的函数的函数名,例如main.index

3.添加会话db.session.add()和db.session.commit()提交会话

4.每次更改了表单的列的时候记得更新啊

相关文章

判断网页编码的方法python版

在web开发的时候我们经常会遇到网页抓取和分析,各种语言都可以完成这个功能。我喜欢用python实现,因为python提供了很多成熟的模块,可以很方便的实现网页抓取。 但是在抓取过程中会...

OpenCV python sklearn随机超参数搜索的实现

本文介绍了OpenCV python sklearn随机超参数搜索的实现,分享给大家,具体如下: """ 房价预测数据集 使用sklearn执行超参数搜索 """ import ma...

python处理csv数据的方法

本文实例讲述了python处理csv数据的方法。分享给大家供大家参考。具体如下: Python代码: 复制代码 代码如下: #coding=utf-8 __author__ = 'deh...

TensorFlow平台下Python实现神经网络

TensorFlow平台下Python实现神经网络

本篇文章主要通过一个简单的例子来实现神经网络。训练数据是随机产生的模拟数据集,解决二分类问题。 下面我们首先说一下,训练神经网络的一般过程: 1.定义神经网络的结构和前向传播的输出结果...

Django 忘记管理员或忘记管理员密码 重设登录密码的方法

看到标题就知道有逗比忘了密码。。。没错就是我。 你也忘了密码? 不要着急! 0x00: 第一步:运行django shell python3 manage.py shell 0x0...