Flask
文章平均质量分 71
bestallen
Beyond Yesterday
展开
-
网站改造 Python Flask Javascript 的搭配使用
网站好久没更新了,最近在考虑一些前后端交互方面的问题,首先感觉如果单纯用Flask搭配Bootstrap的话,前段和后端的联系过于紧耦合了,前端部分得不到很好的锻炼。所以想着自己开设一个子版块,通过手动写JS脚本,来实现几个目标1:菜单导航栏的实现2:在不切换页面的情况下实现内容的刷新3:前段向后端取数据其实第2,3部分就和ajax有关了。尤其是第3部分,还要涉及到后端原创 2017-02-03 14:39:42 · 12576 阅读 · 0 评论 -
Flask Web 开发 关注者
学到这一章,感觉有点回到第8章的味道......有几个坑还是后期需要静下心来补的对于模型间的关系,准备另外单独拎出来写一篇测试文章,这里留个位置给链接吧## 留位置给番外篇#上图是一个自引用的关系图,就用于像关注和被关注这样,关联表两边只有一个实体(用户)的情况的。本例的关联表是follows,其中每一行都表示一个用户关注了另一个用户。图中左边表示的一对原创 2016-09-20 15:47:59 · 3133 阅读 · 1 评论 -
Flask Web 开发 测试
国庆节沦陷在RESTFUL API这个章节里了。。。横竖没看懂后来请教了其他筒子关于REST API的概念,少许有些理解,就是主要集中在资源的获取上,同样的资源格式,比如JSON,可以提供给不同的终端使用。打个比方,知乎的网页版,和APP版,虽然显示的方式截然不同,但是,他获取的资源是一毛一样的。就不多说了。。。先继续往下看测试这章吧先前在其他前辈的技术文章里就看到过测试覆原创 2016-10-09 10:58:34 · 2496 阅读 · 1 评论 -
Flask Web 开发 番外篇_关于扩展引入的坑
坑之描述:根据书本做到了发表博客这一步了,不过突然之间发现了一个问题,就是在主页的时候,右上角的account菜单无法使用但是在其他页面,比如user页面,功能却能够打开,一开始我觉得导航条是做在base.html里面的,肯定和base.html有关系,所以有点钻到牛角尖里面去了后来经过其他筒子的帮忙才发现,原来我主页调用的index.html里面,{% block scripts %原创 2016-09-06 22:26:41 · 2586 阅读 · 0 评论 -
Flask-sqlalchemy中的lazy的解释
这里看到其他前辈写的一篇文章,还是从google上找来的...........测试了用原文名字在百度上搜索,还搜不到。。。晕倒这篇文章写得非常好,在我对Flask里面relationship内部lazy参数一头雾水的时候,用实例测试给我解释,相当好转载记录一下http://shomy.top/2016/08/11/flask-sqlalchemy-relation-lazy/转载 2016-09-15 23:15:35 · 4958 阅读 · 1 评论 -
Flask Web 开发 博客文章
进入新的一章节了又是一个比较大的功能,写博客class Post(db.Model): __tablename__ = 'posts' id = db.Column(db.Integer,primary_key = True) body = db.Column(db.Text) #文章内容 timestamp = db.Column(db.原创 2016-09-05 18:27:22 · 1347 阅读 · 0 评论 -
SQLalchemy 转载学习(学习了中间relationship内部cascade参数的部分)
关于relationship里面cascade参数,一直没理解看了这篇文章,有些感觉了转载一下这位前辈的文章http://www.cnblogs.com/booolee/archive/2009/08/26/1554525.html自打接触了python,就被深深的吸引,首先是它频繁出现在我工作使用的著名GIS软件中,一次为了给一个GIS软件写点脚本转载 2016-09-18 14:41:56 · 4241 阅读 · 0 评论 -
Flask Web 开发 发送异步邮件
继续上一章节的内容,当你点击submit的同时,他会发一封邮件给管理员但是,他会有短时间几秒钟的无响应,如何避免这样的情况呢?那就要用到异步邮件实际上就是交由后来发送这个邮件,算到其他线程里面代码改动如下先导入Thread模块from threading import Thread然后这里踩了个坑啊,上一章节里面的send_email函数里面最后一句ma原创 2016-08-14 16:20:37 · 2593 阅读 · 0 评论 -
Flask Web 开发 用户认证_5
用户认证章节真够长的,不过涉及到的内容确实多,继续上一章节这部分讲到的是新用户注册以后,需要在邮箱里面点击链接进行确认,这个在我们平时网站注册新用户的时候,经常会碰到确认邮件中最简单的确认链接是http://www.example.com/auth/confirm/ 这种形式的URL,其中id 是数据库分配给用户的数字id。用户点击链接后,处理这个路由的视图函数就将收到的用户i原创 2016-08-25 22:34:36 · 3618 阅读 · 14 评论 -
Flask Web 开发 用户资料_4
进入第10章节最后一环节了,也是对于博客或者网站来说比较重要的一环,头像功能。上过stackoverflow或者github的都知道,他们的默认头像,都是类似与大块像素一样的默认头像,其实,这个是通过一个叫做gravatar的全球统一头像服务网站进行设置的你在这个网站上可以通过将email和头像绑定,以后,只要在支持gravatar功能的网站上使用这个email注册账号,那么,头像就自动变原创 2016-09-04 23:45:50 · 1233 阅读 · 1 评论 -
Flask Web 开发 邮件功能
卧了个槽,这个功能,就因为基础知识的大坑,花了我整整2天才解决........我们先来看文章主要内容:这里讲一下SMTP和POP还有IMAP功能这个主要达到的功能就是:可以通过非官方的客户端,来访问邮箱收发邮件比如:我用邮箱大师这个软件,可以绑定某个126邮箱,来进行收发邮件而POP和IMAP的区别在于,POP的操作,不会同步到服务器上,也就是不原创 2016-08-14 12:50:26 · 4437 阅读 · 7 评论 -
SQLalchemy relationship之lazy属性 学习笔记
relationship里面的lazy属性看得头昏脑涨,还是自己来动手弄点数据熟悉一下模型还是建立在目前在看的Flask Web这本书上面的数据库,方便测试第一步,建立一对多关系的测试,class是一这一端,对应student是多那一端,意思是,同一个课程,可以有很多学生选这门课class Student(db.Model): __tablename__ = '原创 2016-09-21 00:01:27 · 13500 阅读 · 5 评论 -
Flask 上传自定义头像
Flask Web 开发这本书基本上做完了,后面还需要温习,但是自己做的博客总觉得简陋了点,所以,在动脑子开发新功能今天想到最基本的功能,自定义头像那这样的功能,设计到2大基本功能块1:如何进行文件的上传和保存2:如何在用户模型里面将头像照片和用户挂钩起来第二个问题我在查阅了网上的讨论后,得出基本上2种方法,第一种是将图片变成二进制以后存入数据库第二种是将图片直原创 2016-10-22 09:26:07 · 8838 阅读 · 3 评论 -
Flask 上传自定义头像_1 使用Flask Uploads
前一篇使用了flask里面的基本功能实现了上传文件他基本上用的都是python本身的功能,另外加了一个flask里面的request封装有点自己造了半个轮子的感觉后来在Flask官方文档里面,又看到了提及有一个简单的方法可以进行上传就是用Flask Uploads,其实说白了就是对上一篇造的轮子的再封装话不多,先配置环境,还是需要下载的python这种等同于原创 2016-10-22 14:58:59 · 4797 阅读 · 5 评论 -
Flask源码解读 <2> --- 请求上下文和request对象
前面第一篇主要记录了Flask框架,从http请求发起,到返回响应,发生在server和app直接的过程。里面有说到,Flask框架有设计了两种上下文,即应用上下文和请求上下文官方文档里是说先理解应用上下文比较好,不过我还是觉得反过来,从请求上下文开始记录比较合适,所以这篇先记录请求上下文。什么是请求上下文通俗点说,其实上下文就像一个容器,包含了很多你需要的信息原创 2017-01-17 19:15:59 · 4607 阅读 · 3 评论 -
Flask源码解读 <1> --- 浅谈Flask基本工作流程
网站写了蛮长时间了,一直想具体分析分析Flask的运行机制,但是源码看得断断续续,不过最近状态不错,进度上来了点,这里先新建一个类别,专门来说说Flask和源码有关系的内容, 这篇准备粗略说一下应用Flask框架的时候,从HTTP请求开始到响应的流程前置技能 --- WSGI 在具体读源码之前,这里先需要说一个概念,什么是WSGI。WSGI,全称 Web Ser原创 2017-01-11 16:19:33 · 18037 阅读 · 11 评论 -
Python Flask Restful API 基础篇
目前Web应用这块,restufl API用得非常普遍,因为,你手上的前端设备五花八门,各种系统的手机,pad等等,而且网站和手机APP经常会有需要资源共享的时候。如果网站做个app,手机端再独立一个app,要保持2者同步,估计做开发的要做死了。所以,RESTFUL API提出了一个概念,就是资源为上,通俗地讲:就是,我有一个资源A,可以作为接口来提供出来,那么,前端设备的B,C,原创 2016-12-20 23:14:13 · 18884 阅读 · 4 评论 -
Python Flask 天气查询
一直觉得自己的博客太简单了,今天想加点功能上去,说干就干,准备加个最常用的,天气预报功能。看了几个例子,觉得也不是很难,网上找个接口就是了,不过,这百度的apistore里面。。。死活不让我获取手机验证码,所以转向JUHE里面去,还送500次的免费次数,绝对够用了进入正题首先,这个功能的主旨是:通过其他网站提供的api接口取回数据,一般是JSON格式的,然后自己渲染在前原创 2016-12-06 22:34:06 · 7535 阅读 · 3 评论 -
转载两篇关于WSGI的文章
昨天想着把Flask功能实现的原理看一下,不过参照了几篇文章,包括廖雪峰老师的文章,看了源码,还是没有能力理顺。今天又从头开始理,准备先把WSGI这部分搞懂,晚上找到两篇好文章,看了以后决定还是先不写笔记了,应该暂时还写不出如此条理清晰的笔记,先读懂理解文章吧。http://blog.csdn.net/on_1y/article/details/18803563http转载 2016-12-10 23:45:39 · 717 阅读 · 0 评论 -
Flask 配置文件config之from_object 篇
Flask Web开发看到第7章,硬着头皮感觉看不下去回过头去补基础这里讲到 app.config.from_object() 这个加载配置的方式首先,app是通过app=Flask(__name__)来实现的那么,app的config方法肯定是通过Flask类里面获得的先看到app的config属性的定义然后,我们再看到make_confi原创 2016-08-17 00:16:52 · 27027 阅读 · 9 评论 -
Flask Web 开发 集成邮件功能
在程序中集成发送电子邮件功能为了避免每次都手动编写电子邮件消息,我们最好把程序发送电子邮件的通用部分抽象出来,定义成一个函数。这么做还有个好处,即该函数可以使用Jinja2 模板渲染邮件正文,灵活性极高.其实课程里说的内容就是自动发送邮件,比如,像你平时论坛里刚注册好账号,他总会给你一个邮件认证什么的,这里的集成功能是类似的。只是他这里的含义是:有人提交表单以后,他自动发一个邮原创 2016-08-14 15:11:23 · 4536 阅读 · 7 评论 -
Flask Web 开发 用户评论_2
国庆长假开始了。。。老老实实在家看书评论功能做完了,后面就涉及到网站的管理员或者协管员对评论的操作了这里网站上主要是单独做了一个按钮给管理员和协管员,通过导航栏里面这个按钮,他可以进入一个页面,里面只显示评论,并按照最近时间来排列!说到导航栏的按钮,那么,这个链接肯定是要做在base.html里面了{% if current_user.can(Permiss原创 2016-10-01 19:25:14 · 1974 阅读 · 0 评论 -
Flask Web 开发 用户评论
程序猿果然是需要精神高度集中才能工作的类型啊......这礼拜生病了。。。看书效率奇低。。。。上一章节讲完了用户关注的关系这一章节来讲另外一个大功能,评论功能由于评论和2个模型有关系,分别是谁发了评论,以及评论了哪个文章,所以这次又要更新数据库模型了class Comment(db.Model): __tablename__ = "commen原创 2016-09-30 21:56:50 · 2356 阅读 · 1 评论 -
Flask Web 开发 关注者_2
这个礼拜效率太低了..........就把relationship的lazy整理了一下,但是感觉还没完全吃透,后面还需要加深印象然后,这个章节需要完成的功能是,在首页上只显示自己关注的人的博客文章首先想到的就是要过滤文章,过滤出来只要自己关注的人的文章这里要用到JOIN操作了,说到底就是2个表进行比较,看是否有属性对等的地方先贴一段书本的内容若想获得原创 2016-09-29 14:33:21 · 1196 阅读 · 2 评论 -
Flask Web 开发 用户资料_3
继续上一章节,上一章节讲的是用户编辑自己页面的内容,内容也是相对简单,真实姓名,来自哪里,自我介绍的信息,而email和用户名什么的,你自己也没地方改,因为在注册的时候就登记了。但是作为网站管理者,你肯定需要拥有权限可以修改用户的资料,甚至说是为他们修改email的地址,或者是用户名,还有权限别看只是多做一个修改他人用户信息的表单,这个章节里面有几个知识点需要特别注意进入正题,原创 2016-09-02 14:20:12 · 3001 阅读 · 3 评论 -
Flask Web 开发 博客文章_5
这章节有点像用户认证那章节,知识点比较密集,终于最后一环节了前面已经有了文章的固定url,那有时候用户或者管理员需要编辑文章,该怎么做呢?前端的显示上面,肯定是有一个edit按钮的,后台也肯定需要一个特定的页面以供修改首先先来编辑前端的显示吧,一般都是点编辑按钮以后,进入可以重新修改文章的页面,也没什么特别的,关键是输入文本框所以新建一个edit_post.html原创 2016-09-15 11:51:10 · 1159 阅读 · 0 评论 -
Flask Web 开发 Web表单_2
继续上一章节的内容完成了登录表单的设置现在还会碰到另外一个问题用户输入名字后提交表单,然后点击浏览器的刷新按钮,会看到一个莫名其妙的警告,要求在再次提交表单之前进行确认。之所以出现这种情况,是因为刷新页面时浏览器会重新发送之前已经发送过的最后一个请求。如果这个请求是一个包含表单数据的POST 请求,刷新页面后会再次提交表单。大多数情况下,这并不是理想的处理方式。很多用户原创 2016-08-07 23:04:14 · 683 阅读 · 0 评论 -
Flask Web 开发 博客文章_2
我们经常会看到,博客文章太多,我们分为很多页来显示,一个是美观,另外一个是这样对于页面的加载速度会优化很多所以,这一章节就是学习这个内容,不过目前我们数据库里面用户只有没几个,要手动添加账户去添加博客文章太累了所以写一个自动生成假用户的程序,用来生成假用户来发假文章,目的是看分页功能。首先是安装一个库(venv) $ pip install forgerypy另外,由于原创 2016-09-08 22:57:17 · 1284 阅读 · 1 评论 -
Flask Web 开发 用户认证_6
握草,终于进入用户认证的最终章节了,觉得作者不错,到了这里,已经开始让你尝试自己写代码了虽然在github上面 Miguelgrinberg 也放上了代码,不过还是尽量自己写吧## 留位置晚上放代码#-----------------------------------------------------------------------------------分割线:额外原创 2016-08-26 13:12:47 · 2260 阅读 · 0 评论 -
Flask Web 开发 链接 url_for 函数
下面讲一个非常重要的功能url_for函数其实,在路由内部,url的链接并不是直接访问到响应的页面的如下图,他是分为2个页面来进行的首先通过url链接到endpoint,再通过endpoint来链接试图函数而这个endpoint一般就是路由函数的名字需要提一点的是,在创建应用实例的时候,他就会自动默认生成一个url静态路由目录,就是指向静态文件的文件夹static。|原创 2016-08-04 10:03:03 · 30690 阅读 · 0 评论 -
Flask Web 开发 错误页面自定义
如果要自定义错误画面,无法大多数情况是自定义404和500的情况首先,要在路由中设置通过app.error_handler这个装饰器来绑定响应函数而404和500的错误页面,也是要单独做成html文件的最直接的方法是复制user.html的内容,然后替换,但是这样太麻烦了所以,我们把原本应用程序的base.html继承自Bootstrap的base,就解决了这个问题原创 2016-08-04 10:02:40 · 7117 阅读 · 0 评论 -
Flask Web开发 Bootstrap 模板
这里再讲一个Bootstrap的模板通过将app传入构造方法中进行设置from flask.ext.bootstrap import Bootstrap# ...bootstrap = Bootstrap(app)然后,就可以用bootstrap/base.html这个模板了具体的base的构架,如下截图通过下面这个例子,我们来看下怎么样让u原创 2016-08-04 10:01:18 · 5738 阅读 · 1 评论 -
Flask Web 开发 服务器的启动
使用Flask-Script支持命令行选项Flask 的开发Web 服务器支持很多启动设置选项,但只能在脚本中作为参数传给app.run()函数。这种方式并不十分方便,传递设置选项的理想方式是使用命令行参数。Flask-Script 是一个Flask 扩展,为Flask 程序添加了一个命令行解析器。Flask-Script 自带了一组常用选项,而且还支持自定义命令。原创 2016-08-04 10:00:32 · 5672 阅读 · 0 评论 -
Flask web表单
这一章节已经开始头晕了,坡度有点大,需要补的知识有点多,先记录着为了能够处理 web 表单,我们将使用 Flask-WTF ,该扩展封装了 WTForms 并且恰当地集成进 Flask 中。许多 Flask 扩展需要大量的配置,因此我们将要在 microblog 文件夹的根目录下创建一个配置文件以至于容易被编辑。这就是我们将要开始的(文件config.py):C原创 2016-07-31 13:52:51 · 4710 阅读 · 0 评论 -
Flask 学着用模板 render_template
上一章节是做到了在本地浏览器上打印出hello,world如果你要更加复杂,可以像下面一样在return结果里添加内容但是!!简单的几句话你可以这么写,要是整的一个网页,你可没法把代码都拖在return后面吧所以,后面引入了模板功能模板:模板的位置放在templates文件夹下面,一般是html文件,我们把index.html改动成如下样式原创 2016-07-28 15:01:19 · 43837 阅读 · 0 评论 -
Flask Web 开发 Jinja2 macro 信息
转载一个官方文档再转载一个前辈写的http://jinja.pocoo.org/docs/dev/templates/http://www.ttlsa.com/python/flask-jinja2-template-engine-block-and-macro/转载 2016-09-09 15:20:48 · 1165 阅读 · 0 评论 -
Flask Web 开发 数据库
这个以sqlite开头的路径,是一个指向数据库文件的地址from flask.ext.sqlalchemy import SQLAlchemybasedir = os.path.abspath(os.path.dirname(__file__))app = Flask(__name__)app.config['SQLALCHEMY_DATABAS原创 2016-08-08 15:44:02 · 1971 阅读 · 0 评论 -
Flask Web 开发 GET POST两种请求及重定向
简单讲一下基础概念比如在web表单的开发过程中一个url针对的是一个web表单页面,那么,第一次访问应用时,他使用的是get请求!!只有当用户填完表单并符合要求提交时候,才是POST请求这个非常重要!!如下图,如果第一次访问程序,他用的是GET请求但是如果我们用的是提交表单,他则用的是POST,如下图可是,如果我们用的是重定向的话!!原创 2016-08-09 14:40:39 · 14768 阅读 · 2 评论 -
Flask Web 开发 用户认证_4
这个篇章内容比较多,继续上一篇章节登录功能做完以后,终于可以来做新用户注册的功能了首先修改的是auth/forms.py如下from flask.ext.wtf import Formfrom wtforms import StringField,PasswordField,BooleanField,SubmitFieldfrom wtforms.validators impo原创 2016-08-23 21:15:26 · 1165 阅读 · 0 评论 -
Flask Web 开发 博客文章_4
这章节好难......要吐了....好几个知识点没弄明白,用法基本了解了,作用机制甚至参数调用规则还不是很理解只能先写笔记了上过stackoverflow或者segmentfault的时候,看到你在发表文章或者回答答案的时候,输入的同时,下面会有同步生成的效果这样的预览框,实际上是支持MarkDown语法的,啥叫Markdown语法百度了下,基本上就是用很简单的符号,生成文本效原创 2016-09-13 15:33:48 · 1989 阅读 · 2 评论