1.redirect和render_template的区别?

redirect:重定向,会改变url

render_template:模板渲染,用模板来渲染当前页,不会改变url

2.关于 'g' 对象踩的坑

【描述】

博客项目,在login请求中设置g对象,在register请求中取得g对象,取得None

@bp.route('/login',methods=('GET','POST'))deflogin():#...

g.myname = 'john'@bp.route('/register',methods=('GET','POST'))defregister():#...

name = g.get('myname')print(name) #None

【分析】

文档中说道:To share data that is valid forone request only from one function to another ...

注意是一次请求,一次!

要实现跨request需要用到session

3.从DB取出的博客文章显示最多100个字符,其后的省略,如何实现?

【描述】

最终需要的效果图:

我的数据库:

CREATE TABLE user(

idINTEGER PRIMARY KEYAUTOINCREMENT,

usernameTEXT UNIQUE NOT NULL,

passwordTEXT NOT NULL);CREATE TABLEpost (

idINTEGER PRIMARY KEYAUTOINCREMENT,

author_idINTEGER NOT NULL,

createdTIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,

titleTEXT NOT NULL,

bodyTEXT NOT NULL,FOREIGN KEY (author_id) REFERENCES user(id)

);

【解决方案1】

1.写sql的时候这样写 :SUBSTR(p.body,1,100) as body

SELECT p.id , title, SUBSTR(body,1,100) asbody,created,author_id,usernameFROM post p JOIN user u ON p.author_id =u.idORDER BY created DESC

注意一定要定义别名 ... as body,不然会导致在html模板中取不到值

2.前端css代码

font-size:0.6em;

overflow:hidden;

white-space: nowrap;

text-overflow:ellipsis;

【解决方案2】

在模板中使用过滤器(truncatechars),如下将截断100位之后的字符串,并以...表示

{{ post['body']|truncatechars:100 }}

4.按照flask官方文档,我在VScode的TERMINAL中运行失败,如何解决?

【描述】

【解决方案】

看了一下VScode的TERMINAL是powershell,CMD 和 powershell 的命令不一样

powershell

> $env:FLASK_APP = "myapp"

> $env:FLASK_ENV="development"> flask run

CMD

> set FLASK_APP=myapp> set FLASK_ENV=development> flask run

【备注】

1.因为导出的环境变量问题,导致windows下初始化db失败(flask init-db),通过上述方案成功解决

2.windows下把这启动flask服务的命令写进bat文件,以后每次只需要运行这个bat文件就可以了,当然命令要用CMD的那个

运行方法: ./start.bat

5.从数据库中博客表(TABLE post)取出的时间(created)不对

【描述】

博客表:

CREATE TABLEpost (

idINTEGER PRIMARY KEYAUTOINCREMENT,

author_idINTEGER NOT NULL,

createdTIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,

titleTEXT NOT NULL,

bodyTEXT NOT NULL,FOREIGN KEY (author_id) REFERENCES user(id)

);

其中created字段时间比实际时间早了8小时左右

【解决方案】

网上查了一下是因为时区的关系

记得datetime外层一定要裹上括号

created TIMESTAMP NOT NULL DEFAULT (datetime('now','localtime')),

或者

created TIMESTAMP NOT NULL DEFAULT (datetime(CURRENT_TIMESTAMP,'localtime')),

参考:https://www.cnblogs.com/GDLMO/archive/2010/07/19/1780920.html

6.今天碰到操作sqlite的时候出现db locked的情况。

原因是我用了sqlite manager打开了数据库观察,导致删除文章失败。。。呕

7.从后台取到html的数据(博客内容body),反应到模板上显示出了源码,如何解决

【描述】

模板: {{ post['body'] }}

显示如下:

【解决方案】

正则去掉标签

8.flask怎么实现点击链接后在新标签页打开?

9.B站发表评论的HTML代码,为什么没有用form?他用的是什么?

估计是ajax

10.用form提交表单后刷新页面,会提示“确认重新提交表单”的警告框,如何解决?

【解决方案】redirect

11.如何实现评论了之后不刷新页面,只刷新评论列表呢?(局部刷新)

【解决方案】ajax

12.一个html里面有多个form表单,如何区别这些表单呢?

【解决方案】

用隐藏输入框

13.删除一篇博客文章后,怎么同时删除留言等信息呢?数据库该如何设计?

【方法一】

利用外键完整性约束,在外键加入ON DELETE CASCADE

DROP TABLE IF EXISTS user;DROP TABLE IF EXISTSpost;DROP TABLE IF EXISTScomment;CREATE TABLE user(

idINTEGER PRIMARY KEYAUTOINCREMENT,

usernameTEXT UNIQUE NOT NULL,

passwordTEXT NOT NULL);CREATE TABLEpost (

idINTEGER PRIMARY KEYAUTOINCREMENT,

author_idINTEGER NOT NULL,

createdTIMESTAMP NOT NULL DEFAULT (datetime(CURRENT_TIMESTAMP,'localtime')),

titleTEXT NOT NULL,

bodyTEXT NOT NULL,FOREIGN KEY (author_id) REFERENCES user(id)

);CREATE TABLEcomment (

authoridINTEGER NOT NULL,

postidINTEGER NOT NULL,

useridINTEGER NOT NULL,

ctextTEXT NOT NULL,

ctimeTIMESTAMP NOT NULL DEFAULT (datetime(CURRENT_TIMESTAMP,'localtime')),

enable_dis BOOLEANNOT NULL,

reply_targetidINTEGER,FOREIGN KEY (userid) REFERENCES user(id),FOREIGN KEY (reply_targetid) REFERENCES user(id),FOREIGN KEY (authorid) REFERENCESpost (author_id),FOREIGN KEY (postid) REFERENCES post (id) ON DELETE CASCADE);

注意:sqlite需要手动开启外键完整性约束: sqlite> PRAGMA foreign_keys = ON;

14.flask中一个简单的路由系统必须返回一个渲染页面或者重定向页面吗?如果我只是想进行逻辑处理呢?

【描述】

一个简单的路由:

@app.route('/hello')

def hello():

passreturn render_template('index.html')

前端传来一个form想由后端处理,只需要逻辑处理后update一下数据库就行,不用返回新页面,如何实现呢?

【解决方案】ajax

15.【踩坑】模板中注释的语句居然也会被debug检查

【描述】

flask会检查{{...}}里面的内容,而不管在模板中是否被注释。因为路由有所改动,导致报错。。

【解决方案】

删掉,原理请参考源码

16.jinja渲染模板html代码会产生大量空行(空格),如何解决?

在block中加入"-"符号。

例如:

------

{%- if test -%}

{%- endif -%}

flask mysql项目模板渲染_[Flask] Flask问题集(后端模板渲染项目)相关推荐

  1. flask echarts词云可视化_基于flask框架的高校舆情分析系统

    系统分析: 高校舆情分析拟实现如下功能,采集微博.贴吧.学校官网的舆情信息,对这些舆情进行数据分析.情感分析,提取关键词,生成词云分析,情感分析图,实时监测舆情动态. 系统设计: 前端:采用layui ...

  2. vue 修改模板{{}}标签_详解Vue 动态添加模板的几种方法

    以下方法只适用于 Vue1.0 版本,推荐系数由高到低排列. 通常我们会在组件里的 template 属性定义模板,或者是在*.vue文件里的 template 标签里写模板.但是有时候会需要动态生成 ...

  3. 3个阶段 项目征名_中资企业新签的3个海外项目开工

    1)项目名称:基瓦尔路BRT双向混合车道开工 承建方:电建市政东非公司坦桑尼亚达市BRT二期1标段项目部 项目概况:该项目全长11.3公里,左右宽各7米,为保证顺利施工,项目部开工前进行了详细的技术交 ...

  4. 双百双新产业项目是什么_我市全力推进“双百双新”产业项目建设

    今年以来,我市坚持把抓项目.稳投资作为稳增长的重要举措,积极谋划.主动作为,充分挖掘广西百色重点开发开放试验区政策优势,强化机制体制保障,多措并举推进"双百双新"产业项目建设,特别 ...

  5. 双百双新产业项目是什么_广西28个“双百双新”产业项目集中开竣工

    6月28日上午,广西壮族自治区工业和信息化厅举行2020年二季度广西"双百双新"产业项目集中开竣工活动,上汽通用五菱E300微型纯电动车项目等28个项目进行了集中开竣工.南宁集中开 ...

  6. python flask实现博客系统_基于Flask的博客网站设计与实现

    涂远杰 郑剑 摘要:该博客系统是一款分享型博客,注重个人的学习心得.生活等方面的记录.后台基于Python中的Flask框架开发,还涉及爬虫,数据库使用的是轻型的SQLite,同时,前端页面的实现涉及 ...

  7. vue避免重新渲染_详解强制Vue组件重新渲染的方法

    在某些情况下,我们必须强制Vue重新渲染组件,如果没有,那可能,你做的业务还不够负责,反正我是经常需要重新渲染组件,哈哈. 虽然Vue不会自动更新这种情况是相对比较少,但是知道如何在出现这个问题时修复 ...

  8. python实现一个简单的项目建议书范文_建议收藏,22个Python迷你项目(附源码)

    Python部落在使用Python的过程中,我最喜欢的就是Python的各种第三方库,能够完成很多操作. 下面就给大家介绍22个通过Python构建的项目,以此来学习Python编程. 大家也可根据项 ...

  9. python实现一个简单的项目建议书范文_建议收藏,18个Python迷你项目(附源码)

    在使用Python的过程中,我最喜欢的就是Python的各种第三方库,能够完成很多操作. 下面就给大家介绍22个通过Python构建的项目,以此来学习Python编程. 大家也可根据项目的目的及提示, ...

  10. 经典python项目源码_建议收藏,22个Python迷你项目(附源码)

    在使用Python的过程中,我最喜欢的就是Python的各种第三方库,能够完成很多操作. 下面就给大家介绍22个通过Python构建的项目,以此来学习Python编程. 大家也可根据项目的目的及提示, ...

最新文章

  1. R语言dplyr包移除dataframe数据行实战(Remove Rows):按照条件移除数据行、按照索引移除数据行、删除包含NA值的所有数据行、删除具体列包含NA值的数据行
  2. LeetCode 167. Two Sum II - Input array is sorted--Python解法
  3. 【Python实战】Django建站笔记
  4. python中怎么输出中文-python中使用print输出中文的方法
  5. 叶明哲 | 数据中心空调那点事
  6. 遥感方法研究张掖市1999-2010年土地利用变化
  7. Android自定义view之圆形进度条
  8. 深度学习与计算机视觉系列(3)_线性SVM与SoftMax分类器--在深度学习的视觉分类中的,这两个分类器的原理和比较
  9. 聊聊时间管理,不是多人运动那种
  10. Luminus模板可选项
  11. 5款Java微服务开源框架
  12. python新浪股票接口_新浪股票数据接口
  13. 计算机网页制作保存,不使用任何工具轻松保存网页资源的法子
  14. [Ubuntu] LightDM 轻量级桌面显示管理器
  15. 区块链靠什么开启下一个互联网传奇?迅雷链:回归技术
  16. Vlan间通信原理(HCIA)
  17. 模块独立性与高内聚低耦合
  18. python调用ironpython_在.NET中嵌入IronPython 交互
  19. opencv3中的glob函数读取文件夹中数据
  20. 视觉SLAM--直接法

热门文章

  1. Intellij Idea debug 模式如果发现异常,即添加异常断点在发生异常处
  2. win8 C盘空间不足的几种解决方法
  3. Python中import导入上一级目录模块及循环import问题的解决
  4. asp.net core mvc上传大文件解决方案
  5. 全网首译 : 初学者终极指南—掌握Scrum敏捷框架—第1章
  6. 2019/2/23研究日志
  7. Google 的最后努力 :请求最高法院撤回 88 亿罚单
  8. Email 之父去世:他让邮件有了 @
  9. graylog2安装
  10. C#制作自定义安装程序