05 2019 档案
摘要:编写博客前台 博客前台需要开放给所有用户,这里包括显示文章列表、博客信息、文章内容和评论等功能功能。 为了在主页显示文章列表,我们要先在渲染主页模板的index视图的数据库中获取所有文章记录并传入模板: blueprints\blog.py: 在主页模板中,我们使用for语句迭代所有文章记录,一次渲
阅读全文
摘要:因为博客要支持评论,所以我们需要在文章有了新评论后发邮件通知管理员。而且,当管理员回复了读者的评论后,也需要发送邮件提醒读者。 为了方便读者使用示例程序,personalBlog中仍然使用Flask-Mail来发送邮件。读者在运行程序前需要在项目根目录内创建.env文件写入对应的环境变量,以便让发信
阅读全文
摘要:问题描述: 在win10操作系统上,安装了centos7 虚拟机,安装后,用wifi网络可以获取ip,但是切换到手机热点或有线网络就获取不到ip 解决办法: 按照一般的修改ONBOOT =yes, 然后service netowrk restart重启,可能会生效,但是我本地不行 所以上网看其他办法
阅读全文
摘要:在上面我们创建了所有必须的模型类、模板文件和表单类。经过程序规划和设计后,我们可以创建大部分视图函数。这些视图函数暂时没有实现具体功能,仅渲染对应的模板,或是重定向到其他视图。以blog蓝本为例,如下所示: personalBlog/blueprints/blog.py: 创建视图函数 和blog蓝
阅读全文
摘要:下面我们来编写所有表单类,personalBlog中主要包含下面这些表单: 登录表单; 文章表单; 评论表单; 博客设置表单; 这里仅介绍登录表单、文章表单、分类表单和评论表单,其他的表单在实现上基本相同。 删除资源也需要使用表单来实现,这里之所以没有创建表单类,是因为后面我们会介绍在实现删除操作时
阅读全文
摘要:personalBlog采用典型的博客布局,左侧三分之二为主体,显示文章列表、正文;右侧三分之一为边栏,显示分为类列表、社交链接等。现在的工作是将HTML文件加工为模板,并创建对应的表单类,在模板中渲染。 并非所有的页面都需要添加边栏,所以我们不能把它放到基模板中。为了避免重复和易于维护,我们把边栏
阅读全文
摘要:为了方便编写程序前台和后台功能,我们在创建数据库模型后就编写生成虚拟数据的函数。 1)管理员 用于生成虚拟管理员信息的fake_admin()函数如下所示: personalBlog/fakes.py: 生成虚拟管理员信息 2)分类 用于生成虚拟分类的fake_categories()函数如下所示:
阅读全文
摘要:编写程序骨架 personalBlog一共需要使用四张表,分别存储管理员(Admin)、分类(Category),文章(Post)和评论(Comment)。 1)管理员 如果是编写一个固定的个人博客,那么事情就要简单得多,博客的大部分固定信息(比如博客标题,页脚信息等)都可以直接写死在模板中,或是使
阅读全文
摘要:使用蓝本还有一个重要的好处,那就是允许使用工厂函数来创建程序实例。在OOP(Object-Oriented Programming,面向对象编程)中,工厂(factory)是指创建其他对象的对象,通常是一个返回其他类的对象的函数或方法,比如我们之前的例子中创建的WTForms验证器(函数)。在per
阅读全文
摘要:在实际需求中,我们往往需要不同的配置组合。例如,开发用的配置,测试用的配置,生产环境用的配置。为了能方便地在这些配置中切换,你可以把配置文件升级为包,然后为这些使用场景分别创建不同的配置文件,但是最方便的做法是在单个配置文件中使用python类来组织多个不同类别的配置。 下面的代码是personal
阅读全文