python flask学习
文章平均质量分 77
bird333
这个作者很懒,什么都没留下…
展开
-
Python Flask学习_使用Flask-Mail集成到WebApp中
python标准库中内置了邮件支持模块smtplib,但是包装了smtplib的Flask-Mail能更好的和Flask程序集成。Flask-Mail连接到SMTP(简单邮件传输协议:simple mail transfer protocol)服务器,把邮件交给这个服务器发送。一、安装和相关配置参数# pyCharm Terminalpip install flask-mail二、在Pytho...原创 2018-06-21 18:36:19 · 998 阅读 · 0 评论 -
Python Flask学习_使用flask-login实现认证蓝本 (三)
这篇主要讲登入登出的实现。原创 2018-06-29 19:19:18 · 1189 阅读 · 0 评论 -
Python Flask学习_POST/重定向/GET模式
问题:刷新浏览器页面时,浏览器会重新发送之前发送的最后一个请求。如果这个请求是包含表单数据的POST请求,刷新页面后会再次提交表单。浏览器会发出警告:要求在再次提交前确认。因此,最好别让Web程序把POST请求作为浏览器发送的最后一个请求。解决方法是:使用重定向作为刷新产生的POST请求的响应。重定向响应是一种响应URL(而不是HTML代码)的特殊响应,浏览器收到相应的URL,会向重定向的URL发...原创 2018-06-18 21:27:19 · 2149 阅读 · 0 评论 -
Python Flask学习_确认账户(使用电子邮件)
总体思路:通过itsdangerous模块根据用户的id生成令牌,通过令牌生成特定URL(内含id信息),通过Email发送给注册用户。如果用户点击URL进来,证明用户信息真实,予以注册。否则反馈错误。# app/auth/views.py@auth.route('/register',methods=['GET','POST'])def register(): '''注册。数据库更...原创 2018-06-30 10:59:04 · 1678 阅读 · 0 评论 -
Python Flask学习_使用SQLAlchemy管理数据库
ORM是数据库映射模型,即把针对数据库的操作(增删改查等)抽象成了编程语言中代码的操作。例如:我想在数据库表User中增加一条记录,User_Class是User表在编程语言中的模型,我不需要去数据库中使用SQL命令,而是可以直接对User_Class进行操作,对数据库的操作交由User_Class自动完成,就像Qt中的QSqlTableModel这样的类。这就是数据库映射模型。SQLAlchem...原创 2018-06-19 12:34:18 · 736 阅读 · 0 评论 -
Python Flask学习_用户资料系统总结
几乎所有的社交博客都会给用户提供用户资料页,用来展示用户个人信息。用户资料页用户自己可以访问,也可以编辑。可以访问别人的用户资料页,但是不能编辑。管理员可以访问所有人的用户资料页,也都可以编辑。一、资料信息用户资料信息在后台应是存储与数据库中的users表中,因此,在User模型中添加一些字段。# app/models.pyclass User(UserMixin,db.Model): ...原创 2018-07-08 09:24:17 · 702 阅读 · 0 评论 -
Python Flask学习_使用unittest进行单元测试
单元测试是用来对一个模块、一个函数或者一个类来进行正确性检验的测试工作。原创 2018-06-27 23:19:05 · 1446 阅读 · 0 评论 -
Python Flask学习_使用Werkzeug
# models.pyfrom werkzeug.security import generate_password_hash,check_password_hashclass User(db.Model): __tablename__ = 'users' id = db.Column(db.Integer, primary_key=True) ...原创 2018-06-28 00:15:45 · 428 阅读 · 0 评论 -
Python Flask学习_用户角色和用户权限
在Web App中 ,存在和游客(匿名用户),普通用户,协管员,管理员等不同的角色,应当为不同的角色赋予不同的权限。各个用户只能在权限范围内访问页面、进行操作等。通过一个例子来说明。本例中的用户分为4中:游客、普通用户、协管员、管理员。不同的用户有着不同的权限。一、在数据库中表示不同的角色权限有这么几种:操作的权限使用8位二进制数表示,现在只用了5位,剩余的可以以后用来扩展。权限的叠加是按位与运算...原创 2018-07-04 23:36:06 · 13495 阅读 · 1 评论 -
python程序依赖文件的创建与使用
一个python程序一般都要依赖于许多第三方包。如果拿到别人的python代码,里面有各种import,from * import。就需要去一个一个找这些包,再安装,而且你安装的包的版本号还与源码使用的版本号不一定相同,所以拿到这样的代码也不一定能用。因此,在写代码的时候,最好列出一个包含依赖文件的文本,告诉使用这个源码的人依赖的包是什么、包的版本是什么。一、简单的单独环境这里是指只涉及在一个环境...原创 2018-07-14 19:06:48 · 2162 阅读 · 0 评论 -
Python Flask学习_使用flask-login实现认证蓝本(二)
在原创 2018-06-29 17:05:50 · 705 阅读 · 0 评论 -
Python Flask学习_使用Flask-wtf和web表单
HTML中的<form> 元素表示表单,表单用于收集用户输入。之前,学习使用request.form获取表单数据。但是有些任务重复单调,可以实现自动化管理,比如 :生成表单的HTML代码、验证提交的表单数据。Flask-wtf是flask的一个扩展,可以把重复工作变得更简单。一、安装flask-wtf和跨站请求伪造保护(CSRF)# pyCharm Terminal ...原创 2018-06-18 10:52:30 · 5420 阅读 · 0 评论 -
Python Flask学习_使用Flask-Migrate实现数据库迁移
在开发过程中,有时需要 修改数据库模型,修改之后还需要更新数据库。使用SQLAlchmey更新数据库表,只能删除旧表,新建新表,数据也会丢失。因此,SQLAlchemy编写了一个迁移框架:Alembic,除了直接使用Alembic外。还可以使用Flask-Migrate集成到Flask-Scriot中,所有操作都通过Flask-Script命令完成。一、将MigrateCommand类添加到man...原创 2018-06-23 10:07:30 · 1424 阅读 · 0 评论 -
Python Flask学习_使用Flask-Script
Flask开发的Web服务器支持很多启动设置选项,但是只能在脚本中作为参数传递给app.run()函数。每次想要不同的启动方式都需要改动源码,不是很方便。Flask-Script是一个Flask扩展,为Flask程序添加了一个命令解析器。Flask-Script自带了一组常用选项,而且还支持自定义命令。一、使用pip安装# pyCharm Terminalpip install flask-s...原创 2018-06-23 22:24:58 · 738 阅读 · 0 评论 -
Python Flask学习_使用flask-login实现认证蓝本(一)
蓝本可以认为是一类路由的集合。一个Web App实现多个蓝本的目的是,把不同的路由分开,便于维护。再来复习一下,创建蓝本。1、在app包下创建新package,命名为auth。2、创建蓝本对象实例# app/auth/__init__.pyfrom flask import Blueprint #引入Blueprint类auth = Bl...原创 2018-06-29 10:51:51 · 2248 阅读 · 1 评论 -
Python Flask学习_使用静态文件及定义页面图标
一、静态文件HTML代码中引用的图片、JavaScript源码、CSS等都属于静态文件。Flask程序会在根目录下static目录中寻找静态文件 ,因此静态文件应当放于static目录中 。二、定义页面图标 这些都输入页面的图标。可以直接在templates/base.html中定义,其他html都是继承自base.html的,就可以不用重复代码。{% extends "bootstrap/bas...原创 2018-06-17 20:45:46 · 2380 阅读 · 0 评论 -
Python Flask学习_自定义错误界面
点击打开链接在之前学习过响应错误界面,使用的是abort函数。但是,Flask允许程序使用基于模板的自定义错误界面。原创 2018-06-17 20:17:53 · 565 阅读 · 0 评论 -
Python Flask学习_Jinja2模板的控制结构
{% %}是Jinja2中的控制语句,{{ }}是Jinja2中的变量,{# #}是注释。一、条件控制结构根据值,选择不同的语句执行 ,从而获得不同的响应字符串。<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <tit原创 2018-06-17 10:27:49 · 525 阅读 · 0 评论 -
Python Flask学习_使用Jinja2模板响应请求
模板是一个 包含响应文本的文件,其中包含用占位符表示的动态部分。<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>User</title></head><原创 2018-06-16 23:55:16 · 1335 阅读 · 0 评论 -
Python Flask学习_初始化、路由、视图函数和响应
一、初始化(创建Flask程序实例)所有的Flask程序都必须创建一个程序实例。程序实例是Flask类的对象,经常使用以下的代码创建:from flask import Flaskapp = Flask(__name__)将构造函数的__name__参数传递给Flask程序,Flask用__name__决定程序的根目录。二、路由和视图访问网站时,客户端把请求发送给Web服务器,Web服务器在把请...原创 2018-06-16 10:36:53 · 1273 阅读 · 0 评论 -
Python Flask学习_使用Flask-Moment
为了解决时间本地化的问题,解决的方法是:服务器把时间发送给Web浏览器,浏览器将时间转化为本地时间,然后再渲染模板,进行显示。moment.js是使用JavaScript开发的优秀客户端开源代码库,它可以在浏览器中渲染日期和时间 。Flask-Moment是一个Flask程序扩展,能把moment.js集成到Jinja2模板中 。一、安装和初始化Flask-moment# pyCharm Te...原创 2018-06-18 09:15:17 · 2002 阅读 · 1 评论 -
Python Flasky学习_使用Flask_SQLAlchemy的asPagination类对象实现分页
如果,某人的博客文章比较多,在一个页面上显示全部文章,耗时长、看起来也不方便。因此分页是比较好的选择。首先,我们在测试环境中使用Forgerypy创建一些虚拟数据。依赖文件如何写,参照点击打开链接# requirements/dev.txtForgerypy==0.1在User类和Post类中添加生成虚拟用户和文章的方法# app/models.pyclass User(Mixin,db.mo...原创 2018-07-15 09:16:29 · 940 阅读 · 0 评论