随笔分类 -  Flask

学习flask的笔记
摘要:问题描述: 用flask mail发送图片邮件(正文中的图片),在mac系统邮件客户端上,图片出现重复展示问题,即展示了正文图片,同时也把图片作为附件进行了展示,用原生smtp方式发送的图片邮件没有出现该问题;(只在mac上出现,windows上没有出现) 先贴结果图: 待解决问题点: 发送的图片邮 阅读全文
posted @ 2021-03-03 16:51 夏晓旭 阅读(558) 评论(0) 推荐(0) 编辑
摘要:在处理flask-restful api请求时,因为postman发送的格式为text,没有携带content-type:application/json,在解析参数的时候,参数的值都给搞成了空,导致请求的失败 那么怎么避免这个问题呢,找了一堆的资料,最后知道可以不用args[]那种方式获取参数,先 阅读全文
posted @ 2019-06-05 10:55 夏晓旭 阅读(2135) 评论(1) 推荐(0) 编辑
摘要:编写博客前台 博客前台需要开放给所有用户,这里包括显示文章列表、博客信息、文章内容和评论等功能功能。 为了在主页显示文章列表,我们要先在渲染主页模板的index视图的数据库中获取所有文章记录并传入模板: blueprints\blog.py: 在主页模板中,我们使用for语句迭代所有文章记录,一次渲 阅读全文
posted @ 2019-05-11 22:38 夏晓旭 阅读(2575) 评论(1) 推荐(0) 编辑
摘要:因为博客要支持评论,所以我们需要在文章有了新评论后发邮件通知管理员。而且,当管理员回复了读者的评论后,也需要发送邮件提醒读者。 为了方便读者使用示例程序,personalBlog中仍然使用Flask-Mail来发送邮件。读者在运行程序前需要在项目根目录内创建.env文件写入对应的环境变量,以便让发信 阅读全文
posted @ 2019-05-10 22:27 夏晓旭 阅读(424) 评论(0) 推荐(0) 编辑
摘要:问题描述: 在win10操作系统上,安装了centos7 虚拟机,安装后,用wifi网络可以获取ip,但是切换到手机热点或有线网络就获取不到ip 解决办法: 按照一般的修改ONBOOT =yes, 然后service netowrk restart重启,可能会生效,但是我本地不行 所以上网看其他办法 阅读全文
posted @ 2019-05-10 22:27 夏晓旭 阅读(2104) 评论(0) 推荐(0) 编辑
摘要:在上面我们创建了所有必须的模型类、模板文件和表单类。经过程序规划和设计后,我们可以创建大部分视图函数。这些视图函数暂时没有实现具体功能,仅渲染对应的模板,或是重定向到其他视图。以blog蓝本为例,如下所示: personalBlog/blueprints/blog.py: 创建视图函数 和blog蓝 阅读全文
posted @ 2019-05-09 22:26 夏晓旭 阅读(436) 评论(0) 推荐(0) 编辑
摘要:下面我们来编写所有表单类,personalBlog中主要包含下面这些表单: 登录表单; 文章表单; 评论表单; 博客设置表单; 这里仅介绍登录表单、文章表单、分类表单和评论表单,其他的表单在实现上基本相同。 删除资源也需要使用表单来实现,这里之所以没有创建表单类,是因为后面我们会介绍在实现删除操作时 阅读全文
posted @ 2019-05-08 22:26 夏晓旭 阅读(720) 评论(0) 推荐(0) 编辑
摘要:personalBlog采用典型的博客布局,左侧三分之二为主体,显示文章列表、正文;右侧三分之一为边栏,显示分为类列表、社交链接等。现在的工作是将HTML文件加工为模板,并创建对应的表单类,在模板中渲染。 并非所有的页面都需要添加边栏,所以我们不能把它放到基模板中。为了避免重复和易于维护,我们把边栏 阅读全文
posted @ 2019-05-07 22:39 夏晓旭 阅读(1443) 评论(0) 推荐(0) 编辑
摘要:为了方便编写程序前台和后台功能,我们在创建数据库模型后就编写生成虚拟数据的函数。 1)管理员 用于生成虚拟管理员信息的fake_admin()函数如下所示: personalBlog/fakes.py: 生成虚拟管理员信息 2)分类 用于生成虚拟分类的fake_categories()函数如下所示: 阅读全文
posted @ 2019-05-06 22:36 夏晓旭 阅读(1108) 评论(0) 推荐(0) 编辑
摘要:编写程序骨架 personalBlog一共需要使用四张表,分别存储管理员(Admin)、分类(Category),文章(Post)和评论(Comment)。 1)管理员 如果是编写一个固定的个人博客,那么事情就要简单得多,博客的大部分固定信息(比如博客标题,页脚信息等)都可以直接写死在模板中,或是使 阅读全文
posted @ 2019-05-05 22:35 夏晓旭 阅读(698) 评论(0) 推荐(1) 编辑
摘要:使用蓝本还有一个重要的好处,那就是允许使用工厂函数来创建程序实例。在OOP(Object-Oriented Programming,面向对象编程)中,工厂(factory)是指创建其他对象的对象,通常是一个返回其他类的对象的函数或方法,比如我们之前的例子中创建的WTForms验证器(函数)。在per 阅读全文
posted @ 2019-05-04 22:11 夏晓旭 阅读(5150) 评论(0) 推荐(2) 编辑
摘要:在实际需求中,我们往往需要不同的配置组合。例如,开发用的配置,测试用的配置,生产环境用的配置。为了能方便地在这些配置中切换,你可以把配置文件升级为包,然后为这些使用场景分别创建不同的配置文件,但是最方便的做法是在单个配置文件中使用python类来组织多个不同类别的配置。 下面的代码是personal 阅读全文
posted @ 2019-05-01 22:46 夏晓旭 阅读(421) 评论(0) 推荐(0) 编辑
摘要:在实际需求中,我们往往需要不同的配置组合。例如,开发用的配置,测试用的配置,生产环境用的配置。为了能方便地在这些配置中切换,你可以把配置文件升级为包,然后为这些使用场景分别创建不同的配置文件,但是最方便的做法是在单个配置文件中使用python类来组织多个不同类别的配置。 下面的代码是personal 阅读全文
posted @ 2019-04-30 22:27 夏晓旭 阅读(746) 评论(0) 推荐(0) 编辑
摘要:实例化flask提供的blueprint类就创建一个蓝本实例。像程序实例一样,我们可以为蓝本实例注册路由、错误处理函数、上下文处理函数,请求处理函数,甚至是单独的静态文件文件夹和模板文件夹。在使用上,它和程序实例也很相似。比如,蓝本实例同样拥有一个route()装饰器,可以用来注册路由,但实际上蓝本 阅读全文
posted @ 2019-04-29 22:33 夏晓旭 阅读(1832) 评论(0) 推荐(0) 编辑
摘要:个人博客 博客是典型的CMS(Content Management system,内容管理系统),通常由两部分组成:一部分是博客前台,用来展示开放给所有用户的博客内容;另一部分是博客后台,这部分内容仅开放给博客管理员,用来对博客资源进行添加、修改和删除等操作。 在这个项目,我们会学习更高级的项目组织 阅读全文
posted @ 2019-04-28 22:29 夏晓旭 阅读(646) 评论(0) 推荐(0) 编辑
摘要:使用Flask-DebugToolbar调试程序 扩展Flask-DebugToolbar提供了一系列调试功能,可以用来查看请求的SQL语句、配置选项、资源加载情况等信息。这些信息在开发时会非常有用。首先使用pipenv安装Flask-DebugToolbar及其依赖: 然后实例化扩展提供的Debu 阅读全文
posted @ 2019-04-27 22:36 夏晓旭 阅读(1022) 评论(0) 推荐(0) 编辑
摘要:使用Faker生成虚拟数据 创建虚拟数据是编写Web程序时的常见需求。在简单的场景下,我们可以手动创建一些虚拟数据,但更方便的选择是使用第三方库实现。流行的python虚拟数据生成工具有Mimesis和Faker,后者同时支持python2和python3,而且文档中包含丰富的示例,所以这里选用Fa 阅读全文
posted @ 2019-04-27 22:33 夏晓旭 阅读(1743) 评论(0) 推荐(0) 编辑
摘要:使用Bootstrap-Flask简化页面编写 扩展Bootstrap-Flask内置了可以快速渲染Bootstrap样式HTML组件的宏,并提供了内置的Bootstap资源,方便快速开发,使用它可以简化在web程序里使用Bootstrap的过程。 扩展Bootstrap-Flask基于Flask- 阅读全文
posted @ 2019-04-26 22:36 夏晓旭 阅读(6508) 评论(0) 推荐(0) 编辑
摘要:Web程序开发流程 在实际的开发中,一个Web程序的开发过程要设计多个角色,比如客户(提出需求)、项目经理(决定需求的实现方式)、开发者(实现需求)等,在这里我们假设自己是一个人全职开发。一般来说一个web程序的开发流程如下所示: 1) 分析需求,列出功能清单或写需求说明书 2) 设计程序功能,写功 阅读全文
posted @ 2019-04-25 22:50 夏晓旭 阅读(1673) 评论(0) 推荐(1) 编辑
摘要:Flask实战 留言板 创建项目目录messageboard,从GreyLi的代码中把Pipfile和Pipfile.lock文件拷贝过来,这两个文件中定义了虚拟环境中需要安装的包的信息和位置,进入messageboard目录使用pipenv创建虚拟环境,这会同时安装所有依赖(--dev选项用来包括 阅读全文
posted @ 2019-04-23 22:38 夏晓旭 阅读(1542) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示