SqlAlchemy是一个python的ORM框架. 在flask中有一个flask-sqlalchemy的扩展,使用起来很方便. 1.       创建一个sqlalchemy的Model模块 创建一个models.py的模块 创建model的时候,首先引入flask-sqlalchemy的扩展 from flask import Flask from flask_sqlalchemy import SQLAlchemy 然后初始化app和sqlalchemy app = Flask(__na…
Flask使用日志记录的方式: 初始化flask应用实例 在flask中使用logger,需要初始化一个flask的应用 app = Flask(__name__) 2. 调用logger 直接调用logger方法 app.logger.info("my first logging") 这里记录的是info级别的日志 3. 查看结果 运行结果如下: INFO in Code [D:/xxxxx/flask/Code.py:20]: my first logging 默认情况下,flas…
Response响应对象: 当一个web请求被服务器处理完后,会返回用户请求的响应,这时候就要用到响应对象,根据响应给用户的形式不同,响应对象有以下几种处理方式 如果返回的是一个合法的响应对象,它会从视图直接返回. 如果返回的是一个字符串,响应对象会用字符串数据和默认参数创建. 如果返回的是一个元组,且元组中的元素可以提供额外的信息.这样的元组必须是(response, status, headers) 的形式,且至少包含一个元素. status 值会覆盖状态代码, headers 可以是一个列…
Flash中的消息闪现,在官方的解释是用来给用户做出反馈.不过实际上这个功能只是一个记录消息的方法,在某一个请求中记录消息,在下一个请求中获取消息,然后做相应的处理,也就是说flask只存在于两个相邻的请求中"闪现",第三次请求就不存在这个flash了. 下面我们用一个例子来说明一个是如何"闪"的. 首先引入flash和get_flashed_message方法 from flask import Flask,url_for,render_template,requ…
通过flask进行路由配置的时候,有一个细节,就是同样的url,带上"/"和不带"/"有什么区别. 举例说明: 比如有个url,名字为"/url" 先同时定义两种url,一种带"/",一种不带"/",如下代码: @app.route("/url") def urlWithOut():     return "url with out /" @app.route(&qu…
Request对象在web应用的开发中是一个非常重要的对象,主要用来获取用户发来的请求数据. 常用属性参考:http://docs.jinkan.org/docs/flask/api.html#flask.request 下面我们以一个表单提交的例子来说明一些常用request属性的使用. 创建一个表单的template 在templates文件夹下面创建form.html模板文件,输入下面的代码 {% extends "base.html" %} {% import "fo…
在之前的文章中我们介绍了如何在centOS中安装sqlite数据库. Sqlite安装完成后,本节就用flask来连接和操作sqlite数据库. 1.       数据准备 先在sqlite3中创建一个数据库mydb,执行sqlite3 mydb 然后执行.databases命令,查看我们创建的数据库 可以看到我们把数据库文件放到了/www/db/mydb文件夹下面 然后我们创建一个user表 使用insert语句 ,写入一条数据到user表中 2.       在code.py中添加获取用户列…
某些情况下,需要读取flask网站要目录下的txt文件.但是直接在flask网站的目录下创建一个文件是无法访问的.从网站找了一些资料,最终发现通过写一个方法返回txt内容比较简单方便,不过此方法适用于简单的文件读取以及读取量比较小的时候.详细代码如下: @app.route('/<path>') def today(path):     base_dir = os.path.dirname(__file__)     resp = make_response(open(os.path.join…
# encoding:utf-8 # 从flask这个框架中导入Flask这个类 from flask import Flask # 初始化一个Flask对象 # Flasks() # 需要传递一个参数__name__ # 1.方便flask框架去寻找资源 # 2.方便flask插件比如Flask-Sqlalchemy出现错误时,好去寻找问题的所在位置 app = Flask(__name__) # @开头是一个装饰器,在函数上面 # 127.0.0.1:5000/ ->去请求hello_wor…
使用run()方式可以启动flask应用,但是每次修改代码之后,需要重新启动,这样对于调试就很不太方便.Flask的调试模式可以让代码在每次修改之后自动载入. 有两种方法可以启用flask的调试模式 直接设置app的debug为true: app.debug=true 把debug=true作为参数,传入到run方法 app.run(debug=true) 以第一种方法为例,当我们设置debug模式后,console窗口的输出会有相应的变化 现在访问应用的首页: 修改一下首页的代码: @app.…