![](https://img-blog.csdnimg.cn/20190830220156542.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
Flask
网络毒刘
因为同样的坑不想踩两次而写博客,
也同样为了社会更好的进步...
其实 Python 已经是一个很老的编程语言了,到现在(2019年) Python 已经高龄 28 岁,比很多程序员的年龄都大。现在之所以这么流行和社区、人工智能AI的日益发展,有很大的关系。
千里之行始于足下,还不开始学习 Python编程吗
个人公众号:网络毒刘
一名热爱分享技术的宝藏博主。
公众号回复1024,有免费教程分享。
展开
-
【后端开发】分析抖音后台架构
最后分享抖音美女爬虫 https://github.com/wangshub/Douyin-Bot原创 2020-01-14 21:04:40 · 17016 阅读 · 2 评论 -
Flask-DebugToolbar的配置
该扩展为 Flask 应用程序添加了一个包含有用的调试信息的工具栏。安装简单地使用pip来安装:$ pip install flask-debugtoolbar用法设置调试工具栏是简单的:from flask import Flaskfrom flask_debugtoolbar import DebugToolbarExtensionapp = Fl...原创 2019-10-17 21:48:11 · 858 阅读 · 0 评论 -
Flask的csrf_token的用法
在flask当中,flask-wtf模块时携带csrf校验的,只是需要开启;如果不开启校验就不需要校验,但是那样不安全。Csrf是针对与post请求的跨域限制,get请求没有作用csrf_token的开启在flask中开启csrf保护from flask_wtf.csrf import CsrfProtectCsrfProtect(app)csrf也支持惰性加载f...原创 2019-09-23 22:03:32 · 2644 阅读 · 0 评论 -
SQLAlchemy()分页器paginate方法
Flask的数据分页示例用法:1,首先写数据获取的视图函数,就像这样:# 首页@blog_bp.route('/', endpoint='index')def index(): #获取页数 page = request.args.get('page',1) paginate = Article.query.paginate(page=int(page...原创 2019-09-23 21:26:38 · 10588 阅读 · 0 评论 -
解决AttributeError AttributeError: 'NoneType' object has no attribute 'filename'
原因忘记上传文件 表单需要加属性enctype="multipart/form-data"否则报错!AttributeError AttributeError: 'NoneType' object has no attribute 'filename'enctype="multipart/form-data是设置表单的MIME编码。默认情况,这个编码格式是applicatio...原创 2019-09-23 20:14:26 · 11014 阅读 · 2 评论 -
cookie和session之会话机制: http 协议 ---》 无状态协议
设置cookie: 通过response对象: response = make_response() response.set_cookie(key,value,max_age=(单位second),expires=(要求是detetime类型)) expires = datetime(year=2018,month=11,day=5...原创 2019-09-21 12:18:15 · 151 阅读 · 0 评论 -
SQLAlchemy中filter_by()和filter()的用法不同
filter_by() 和 filter() 的最主要的区别:模块 语法 ><(大于和小于)查询 and_和or_查询 filter_by() 直接用属性名,比较用= 不支持 不支持 filter() 用类名.属性名,比较用== 支持 支持 谈 filter_by() 的语法之前先看下 filter_by() 的内部...原创 2019-09-19 08:33:50 · 8564 阅读 · 1 评论 -
SQLAlchemy 中的 Session、sessionmaker、scoped_session
SQLAlchemy 中的 Session、sessionmaker、scoped_session目录一、关于 Session 1. Session是缓存吗? 2. Session作用: 3. Session生命周期: 4. Session什么时候创建,提交,关闭? 4. 获取一个Session: 5. 关于SQLAlchemy 的 create_engine: ...原创 2019-09-19 08:02:49 · 849 阅读 · 0 评论 -
一分钟精通Flask-Bootstrap的使用
要想在程序中集成Bootstrap,显然要对模板做所有必要的改动。不过,更简单的方法是使用一个名为Flask-Bootstrap 的Flask 扩展,简化集成的过程。安装:Flask-Bootstrap 使用pip安装:pip install flask_bootstrap Flask 扩展一般都在创建程序实例时初始化,下面是Flask_Bootstrap的初始化方法加载:...原创 2019-09-23 22:35:12 · 10421 阅读 · 0 评论 -
{%extends "bootstrap/base.html"%}的添加,使得其他block无法继承
仙说{%extends "bootstrap/base.html"%}用法:在base.html中调用一次即可,并且 {%extends "bootstrap/base.html"%}要放在 最后头!!最后头!最后头!base中不用再添加{% block content%} {% endblock %},等等自带的block ,具体自带 如下图!因为bootstr...原创 2019-09-24 21:14:22 · 7821 阅读 · 1 评论 -
运用Nginx代理和UWSGI将Flask项目部署在Linux中 详细步骤
nginx:安装可以参照的路径: http://nginx.org/en/linux_packages.html#Ubuntu启动Nginx nginx [ -c configpath] 默认配置目录:/etc/nginx/nginx.conf查看进程: ps -ef |grep nginx控制Nginx nginx -s xxx...原创 2019-09-25 20:29:32 · 561 阅读 · 0 评论 -
发送手机验证码通过调用第三方网易云信API(flask项目)
一、 获取验证码: 1. 输入手机号码 2. 通过ajax发送请求 3. 后端: 获取手机号码 使用requests向第三方的服务端(网易云信)发送请求官方文档 https://dev.yunxin.163.com/docs/product/%E7%9F%AD%E4%BF%A1/%E7%9F%AD%E4%BF%A1%E6%8E%A5%E5%85%A5%E7%A4%...原创 2019-09-25 21:05:11 · 697 阅读 · 0 评论 -
parser.add_argument验证格式
article_bp = Blueprint('article', __name__, url_prefix='/api')api = Api(article_bp)parser = reqparse.RequestParser()parser.add_argument('name', type=str, help='必须填写名称', required=True)channel_f...原创 2019-09-27 09:13:00 · 1706 阅读 · 0 评论 -
正则表达式采坑
[a-zA-Z]匹配大小写字符\w匹配字母、数字、下划线{5,7}表示前面的字符(即:\w)必须至少出现 5 次最多出现 7 次.合起来就是 >=6 少于8个的字符[a-zA-Z]\w{6,12} --------------》》 就是要输入七位数到十三位!!!...原创 2019-09-27 22:38:30 · 614 阅读 · 0 评论 -
flask中数据库的基本操作-增删改查【备忘】
1.增加数据(就相当于增加一个实例对象)user1 = User(name='long',email='1006550026@qq.com',password='123456',role_id=1)db.session.add(user1)db.session.commit()2.修改数据修改用户表里面的name为long的姓名为:fang首先查询到名为long...原创 2019-09-28 16:15:23 · 274 阅读 · 0 评论 -
Flask学习记录之Flask-SQLAlchemy
Flask-SQLAlchemy库让flask更方便的使用SQLALchemy,是一个强大的关系形数据库框架,既可以使用orm方式操作数据库,也可以使用原始的SQL命令.Flask-Migrate 是一个数据迁移框架,需要通过Flask-script库来操作.一.配置Flask-SQLAlchemy程序使用的数据库地址需要配置在SQLALCHEMY_DATABASE_URI中,S...原创 2019-09-28 17:16:48 · 220 阅读 · 0 评论 -
flask-restful接口
同flask一样,flask-restful同样支持返回任一迭代器,它将会被转换成一个包含原始 Flask 响应对象的响应:class ArticleApi(Resource): def get(self): return {"hello":"world"},201,{"course":"python"}在此基础上还可以做一个灵活的拓展,假设我们根据发来的请求对...原创 2019-09-28 20:47:29 · 535 阅读 · 0 评论 -
flask中关于endpoint端点、url_map映射、view_func视图函数,view_functions、及视图函数名是否何以相同的问题?
视图函数中关于url_map视图的映射:应该是[url->methonds->endpoint] 而整个请求的过程,是先通过url地址映射到端点endpoint,然后通过endpoint找到试图函数view_func(扩展:在Flask类里边有一个view_funtions的属性,view_functions属性默认是一个空字典,其作用就是存储endpoint:v...原创 2019-09-19 08:00:09 · 632 阅读 · 0 评论 -
Flask-SQLAlchemy 中如何不区分大小写查询?
例如下面的User模型,在数据库中查询时并不会区分大小写class User(db.Model): __tablename__ = 'users' id = db.Column(db.Integer, primary_key=True) username = db.Column(db.String(64), unique=True, index=True...原创 2019-09-18 21:49:10 · 1653 阅读 · 0 评论 -
Flask模板01
模板在前面的示例中,视图函数的主要作用是生成请求的响应,这是最简单的请求。实际上,视图函数有两个作用:处理业务逻辑和返回响应内容。在大型应用中,把业务逻辑和表现内容放在一起,会增加代码的复杂度和维护成本。本节学到的模板,它的作用即是承担视图函数的另一个作用,即返回响应内容。 模板其实是一个包含响应文本的文件,其中用占位符(变量)表示动态部分,告诉模板引擎其具体值需要从使用的数据中获取。使用真实...原创 2019-08-10 14:18:17 · 269 阅读 · 0 评论 -
Flask模板02
3.4 控制语句常用的几种控制语句:模板中的if控制语句@app.route('/user')def user(): user = 'dongGe' return render_template('user.html',user=user) <html> <head> {% if user %} <...原创 2019-08-10 14:20:14 · 162 阅读 · 0 评论 -
【python】Flask视图
2.1 从 Hello World 开始Flask程序运行过程:所有Flask程序必须有一个程序实例。Flask调用视图函数后,会将视图函数的返回值作为响应的内容,返回给客户端。一般情况下,响应内容主要是字符串和状态码。当客户端想要获取资源时,一般会通过浏览器发起HTTP请求。此时,Web服务器使用WSGI(Web Server Gateway Interface)协议,把来自客户...原创 2019-08-10 14:21:55 · 299 阅读 · 0 评论 -
解决pycharm运行Flask指定ip、端口更改无效
后来查了一下官网文档,原来Flask 1.0 版本不再支持之前的FLASK_ENV 环境变量了。Prior to Flask 1.0 the FLASK_ENV environment variable was not supported and you needed to enable debug mode by exporting FLASK_DEBUG=1. This can still...原创 2019-09-16 11:01:55 · 3795 阅读 · 1 评论 -
解决:SyntaxError: Non-UTF-8 code starting with '\xe6' in file
pycharm加注释报错SyntaxError: Non-UTF-8 code starting with '\xe6' in file处理代码最上面加上编码格式#coding:utf-8原创 2019-09-16 15:54:48 · 22753 阅读 · 7 评论 -
Flask唯一URL规则--@app.route('/', endpoint='1')
Flask的URL规则基于werkzeug的路由模块,用来保证URL的唯一性。例如带斜线:@app.route('/example/')def example(): return 'ok'如果访问一个结尾不带斜线的URL会被重定向到斜线的URL上。(/example)变为(/example/)如果不带斜线:@app.route('/index')def inde...原创 2019-09-16 22:14:42 · 2585 阅读 · 0 评论 -
flask开启调试的四种模式
在app.run()中加一个参数, 'debug=True'就可以开启debug模式 from flask import Flaskapp = Flask(__name__)@app.route('/')def hello_world(): return 'Hello World!'if __name__ == '__main__': app.run(...原创 2019-09-16 22:22:41 · 2671 阅读 · 0 评论 -
Flask-Script扩展命令行manager = Manager(app)
通过使用Flask-Script扩展,我们可以在Flask服务器启动的时候,通过命令行的方式传入参数。而不仅仅通过app.run()方法中传参,比如我们可以通过python hello.py runserver --host ip地址,告诉服务器在哪个网络接口监听来自客户端的连接。默认情况下,服务器只监听来自服务器所在计算机发起的连接,即localhost连接。我们可以通过python hel...原创 2019-09-17 21:25:09 · 4392 阅读 · 0 评论 -
Flask 模板 之 变量和过滤器
1.模板在前面的示例中,视图函数的主要作用是生成请求的响应,这是最简单的请求。实际上,视图函数有两个作用:处理业务逻辑和返回响应内容。在大型应用中,把业务逻辑和表现内容放在一起,会增加代码的复杂度和维护成本。本节学到的模板,它的作用即是承担视图函数的另一个作用,即返回响应内容。 模板其实是一个包含响应文本的文件,其中用占位符(变量)表示动态部分,告诉模板引擎其具体值需要从使用的数据中获取。使用...原创 2019-09-17 21:29:13 · 372 阅读 · 1 评论 -
Flask中的 url_for() 函数
最近在学Python Flask框架,并且学会做一些简单的项目,如做一个网站的登录页面等,其中学到了一个路由反向解析的函数url_for(),这里做一个小结,供日后复习。1.URL反转:根据视图函数名称得到当前所指向的url2.url_for() 函数最简单的用法是以视图函数名作为参数,返回对应的url,还可以用作加载静态文件,如:<link rel="stylesheet" ...原创 2019-09-17 22:26:19 · 3395 阅读 · 0 评论 -
解决:FLASK中Warning: (1366, "Incorrect string value: '\\xD6\\xD0\\xB9\\xFA\\xB1\\xEA...'
Flask项目中使用mysql数据库启动项目是发出警告:Warning: (1366, “Incorrect string value: ‘\xD6\xD0\xB9\xFA\xB1\xEA…’ for column ‘VARIABLE_VALUE’ at row 479/480/481”)但是项目可以正常启动使用如果想将次警告去掉需要导入一个模块解决方法:下载数据库驱动:...原创 2019-09-18 10:40:31 · 1737 阅读 · 0 评论 -
解决 Cannot open D:\Program Files\Anaconda3\Scripts\pip-script.py 问题
报错:Collecting pip Using cached https://files.pythonhosted.org/packages/30/db/9e38760b32e3e7f40cce46dd5fb107b8c73840df38f0046d8e6514e675a1/pip-19.2.3-py2.py3-none-any.whlInstalling collected pack...原创 2019-09-18 10:59:43 · 4292 阅读 · 2 评论 -
解决:flask-sqlalchemy.exc.DataError: (pymysql.err.DataError) (1406数据库字段超出长度错误)
这个问题是说数据库user的password字段长度超出,修改长度后,硬核方法删除migrations 文件夹 然后删除数据库中模型表格python manage.py db initpython manage.py db migratepython manage.py dbupgrate三连击后,在重新运行后方能生效,如果之前的user不删除,修改后不会生效,切记...原创 2019-09-18 15:40:41 · 2378 阅读 · 0 评论 -
面向对象:实例化的对象调用类方法 db.Column()
请问 类的对象调用另一个类的对象 是什么意思???from flask_sqlalchemy import SQLAlchemydb = SQLAlchemy()class User(db.Model): __tablename__ = 'users' id = db.Column(db.Integer, primary_key=True...原创 2019-09-18 20:04:29 · 4878 阅读 · 0 评论 -
创建对象方法之增
# 1. 创建模型对象 user = User() # 2. 给对象赋值 user.username = username user.password = pwd user.phone = phone # 3. 向数据库提交数据...原创 2019-09-18 21:26:48 · 206 阅读 · 0 评论 -
通过__tablename__ = 'xxx' #定义表名
from datetime import datetimefrom exts import dbclass User(db.Model): __tablename__ = 'user1' #定义表名 id = db.Column(db.Integer,primary_key=True,autoincrement=True) username = db.Colum...原创 2019-09-18 21:29:21 · 3209 阅读 · 0 评论 -
SQLAlchemy - Column详解
SQLAlchemy - Column详解Column常用参数:default:默认值nullable:是否可有primary_key:是否为主键unique:是否唯一autoincrement:是否自动增长onupdate:更新的时候执行的函数name:该属性在数据库中的字段映射sqlalchemy常用数据类型:Integer:整形Float:浮点类型Boolean:传递...原创 2019-09-18 21:44:58 · 6976 阅读 · 0 评论