python框架中flask知识点总结

有很久没有更新我的博客了,在学习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.每次更改了表单的列的时候记得更新啊

(0)

相关推荐

  • 详解flask入门模板引擎

    模板引擎 说明:模板文件就是按照一定的规则书写的展示效果的HTML文件 模板引擎就是负责按照指定规则进行替换的工具 模板引擎选择jinja2 一.渲染模板的方法 1.将渲染的模板进行返回 render_template() 2.渲染字符串返回 render_templates_string() 实例 @app.route('/') def index(): #将模板内容响应给用户 return render_template('index.html') #渲染一内容响应给用户 return re

  • Python的Flask框架标配模板引擎Jinja2的使用教程

    Jinja2需要Python2.4以上的版本. 安装 按照Jinja有多种方式,你可以根据需要选择不同的按照方式. 使用easy_install 或pip: #sudo easy_install Jinja2 #sudo pip install Jinja2 这两个工具可以自动从网站上下载Jinja,并安装到python目录的site-packages目录中. 从tar包安装: # 下载Jinja的安装包 # 解压缩 # sudo python setup.py install 基本API用法

  • Python2.7环境Flask框架安装简明教程【已测试】

    本文详细讲述了Python2.7环境Flask框架安装方法.分享给大家供大家参考,具体如下: 第1步:确保本机已经安装有python,下载easy_install到本地某一目录,双击ez_setup.py,python将自动下载到python安装目录/Scripts 下面,然后在系统环境变量的PATH中添加easy_install所在的目录,例如:C:Python27Scripts 第2步:安装 virtualenv,这个主要是用来做解释器环境隔离的,避免同一机器上的多个python或者多个py

  • 一个基于flask的web应用诞生 使用模板引擎和表单插件(2)

    经过了第一章的内容,已经可以做出一些简单的页面,首先用这种方式做一个登录页面,首先要创建一个login的路由方法: @app.route("/login",methods=["GET"]) def login(): html="<form method='post'>" \ "<table>" \ "<tr><td>请输入用户名</td><td>

  • Python的Flask框架中的Jinja2模板引擎学习教程

    Flask的模板功能是基于Jinja2模板引擎来实现的.模板文件存放在当前目前下的子目录templates(一定要使用这个名字)下. main.py 代码如下: from flask import Flask, render_template app = Flask(__name__) @app.route('/hello') @app.route('/hello/<name>') def hello(name=None): return render_template('hello.html

  • Python Flask框架扩展操作示例

    本文实例讲述了Python Flask框架扩展操作.分享给大家供大家参考,具体如下: 请求上下文(request context) Flask有两大核心:Werkzeug和Jinja2.Werkzeug实现路由.调试和Web服务器网关接口.Jinja2实现了模板. request和response都属于请求上下文对象. 当调用app = Flask(name)的时候,创建了程序应用对象app: request 在每次http请求发生时,WSGI server调用Flask.call():然后在F

  • Flask框架Jinjia模板常用语法总结

    本文实例总结了Flask框架Jinjia模板常用语法.分享给大家供大家参考,具体如下: 1. 变量表示 {{ argv }} 2. 赋值操作 {% set links = [ ('home',url_for('.home')), ('service',url_for('.service')), ('about',url_for('.about')), ] %} 3. if判断 {% if not loop.first %}|{% endif %} 4. for 循环 {% for label,l

  • Python Flask框架模板操作实例分析

    本文实例讲述了Python Flask框架模板操作.分享给大家供大家参考,具体如下: 模板 在前面的示例中,视图函数的主要作用是生成请求的响应,这是最简单的请求.实际上,视图函数有两个作用:处理业务逻辑和返回响应内容.在大型应用中,把业务逻辑和表现内容放在一起,会增加代码的复杂度和维护成本.本节学到的模板,它的作用即是承担视图函数的另一个作用,即返回响应内容. 模板其实是一个包含响应文本的文件,其中用占位符(变量)表示动态部分,告诉模板引擎其具体值需要从使用的数据中获取.使用真实值替换变量,再返

  • python框架中flask知识点总结

    有很久没有更新我的博客了,在学习flask去了,别人都说flask不难,其实现在我也这么觉得,但是在刚接触的时候还是有点吃力的. 在学习的过程中查阅了不少,也了解了许多,今天想做个总结...以免觉得学了那么久什么都没学到,还有防止以后忘记. 一.关于装饰器,路由 最开始接触的时候觉得好神奇,只会照着敲不知道怎么自己用起来 @app .route('/') def hello: print('hello') 注意:1.只有@这个东西是固定的,app 是可以换的,这与蓝本中的定义有关,bluepri

  • python案例中Flask全局配置示例详解

    目录 WEB服务全局配置 Flask全局配置 before_request after_request Flask自定义中间件 WEB服务全局配置 在目前的开发过市场当中,有很多WEB服务框架,Flask只是其中之一,但是总体上来看,所有的WEB框架都是依据HTTP协议的逻辑从请求到响应设计的.固然有很多功能是独立的,但是也有一部分功能需要全局设定,比如安全校验,比如埋点日志,那么这里就用到了全局配置. 所谓的全局配置,就是在框架全局,请求前后,响应前后,设置的全局配置,比如登录校验,这个功能并

  • Python编程中flask的简介与简单使用

    flask是一个纯python实现的开源microframework,使用flask可以像java的spring boot一样快速开始基于RestApi的微服务开发. 概要信息 事前准备 python和pip [root@liumiaocn ~]# python --version Python 2.7.5 [root@liumiaocn ~]# pip --version pip 10.0.1 from /usr/lib/python2.7/site-packages/pip (python

  • python中Flask框架简单入门实例

    本文实例讲述了python中Flask框架的简单用法.分享给大家供大家参考.具体如下: 使用Flask框架的简单入门范例代码,如果你正学习Flask框架,可以参考下面的启动代码,这段代码可以在网页上输出"hello world" import os # Using Flask since Python doesn't have built-in session management from flask import Flask, session app = Flask(__name_

  • Python中flask框架跨域问题的解决方法

    目录 一.跨域是什么 二.如何解决跨域问题 总结 一.跨域是什么 从一个域名去请求另一个域名,这个过程称之为跨域.浏览器从一个域名的网页去请求另一个域名的资源,域名.端口.协议有一个不一样,请求都属于跨域.跨域其实是浏览器的一个保护政策. 网页上有ajax请求时,会报:No 'Access-Control-Allow-Origin' header is present on the requested '这个错误. 二.如何解决跨域问题 1.跨域请求的过程 因此我们只要做到请求头部信息一致即可.

  • 在Python的Flask框架中实现全文搜索功能

     全文检索引擎入门 灰常不幸的是,关系型数据库对全文检索的支持没有被标准化.不同的数据库通过它们自己的方式来实现全文检索,而且SQLAlchemy在全文检索上也没有提供一个好的抽象. 我们现在使用SQLite作为我们的数据库,所以我们可以绕开SQLAlchemy而使用SQLite提供的工具来创建一个全文检索索引.但这么做不怎么好,因为如果有一天我们换用别的数据库,那么我们就得重写另一个数据库的全文检索方法. 所以我们的方案是,我们将让我们现有的数据库处理常规数据,然后我们创建一个专门的数据库来解

  • 在Python的Flask框架中使用日期和时间的教程

     时间戳的问题 我们的微博应用的一个忽略了很久的问题就是日间和日期的显示. 直到现在,我们在我们的User和Post对象中使用Python它自己的方式来渲染时间对象,但这并不是一个好的解决方案. 考虑下这样的例子.我正在写这篇文章,此时正是12月31号下午3:54.我的时区是PST(或者你们更习惯的:UTC-8). 在Python解释器中运行,我得到下面输出: >>> from datetime import datetime >>> now = datetime.no

  • 对于Python的框架中一些会话程序的管理

    Django, Bottle, Flask,等所有的python web框架都需要配置一个SECRET_KEY.文档通常推荐我们使用随机的值,但我很难发现他有任何文字说明,因为这样容易被破解(本地攻击或者文本阅读在web app中更容易受攻击).攻击者可以使用SECRET_KEY伪造cookies,csrf token然后使用管理员工具.不过这很难做到,不过他可以搞一些小破坏,比如执行恶意代码.这也是我下面将要介绍的. 记得以前使用PHP找到一个可以读服务器上任意文件的bug(不包含本地文件),

  • Flask和Django框架中自定义模型类的表名、父类相关问题分析

    本文实例分析了Flask和Django框架中自定义模型类的表名.父类相关问题.分享给大家供大家参考,具体如下: 一. Flask和Django中定义表名(执行迁移后生成)的方式和flask是不同的: 1. Django中表名的定义方式,以代码为例说明 class User(AbstractUser): # 继承自认证系统模型类 """用户模型类""" mobile = modles.CharField(max_length=11, mix_len

随机推荐