前言·

视频:2024版-零基础玩转Python Flask框架-学完可就业

书:清华大学出版社-图书详情-《Flask Web全栈开发实战》 (tup.com.cn) | Flask Web全栈开发实战 (豆瓣) (douban.com)

挺简单清楚的,感觉直接看书都行

视频结构:

Flask入门

  • flask基础
  • demo:问答平台

Flask实战:

  • 论坛实战(前后端分离
  • 在线聊天系统(前后端分离+websocket
  • 新特性:flask异步

Flask介绍

“微”字表示 Flask 的目标是保持核心简单而又可扩展。

发现自己开启了flaskdebug 浏览器手动刷新依然没用,甚至重新运行项目依然不行,猜测是不小心运行了多次app.py程序,pycharm显示关闭;检查5000端口后确实存在两个listenning

C:\Users\han>netstat -ano | find "5000" TCP 127.0.0.1:5000 0.0.0.0:0 LISTENING 21896

TCP 127.0.0.1:5000 0.0.0.0:0 LISTENING 21897

kill后恢复正常

C:\Users\han>taskkill /pid 21896 -f 成功: 已终止 PID 为 21896 的进程。

经验救了自己,不然如果实际做项目,遇到这种问题,还挺抓狂;重启解决90%问题🐶

url与视图函数的映射是通过@app.route()装饰器实现的。

1、只有一个斜杠代表的是根目录——首页。

传参:

1
2
3
@app.route('/blog/<int:blog_id>')
def blog(blog_id):
return '您访问的博客是%s'% blog_id

您访问的博客是1。必须注明,/1,不然会报错:404 Not Found](http://127.0.0.1:5000/blog)

设置默认访问参数:

1
2
3
4
5
@app.route('/booklist')
def book_list():
# arguments 参数 request.args:类字典类型
page = request.args.get("page",default=1,type=int)
return f"第{page}页图书列表"

127.0.0.1:5000/booklist:第1页图书列表

127.0.0.1:5000/booklist?page=3:第3页图书列表

参考:

FLASK学习杂记(一)Pycharm中DEBUG开启以及FLASK配置_pycharm flask debug-CSDN博客

5.python 模块中的__name__属性 详解_运行【tt1.py】时:【1】tt1.py中属性【name】的值为:【2】singrobot-CSDN博客

前言_Flask中文网 (github.net.cn)

[记录]基于Flask Web全栈开发实战(黄勇·著)-CSDN博客

Flask学习与项目实战2:url与视图函数映射、视图转url_typeerror: the view function did not return a vali-CSDN博客

jinja2模板·

模板渲染·

为什么叫做 Jinja ?

选择 Jinja 作为名字是因为 Jinja 是日本寺庙的名称,并且 temple 和 template 的发音类似。它并不是以乌干达的金贾市(Jinja)命名的。

不过看弹幕似乎前后端分离是主流,不过学学没坏处 || 用模板渲染的话前后端都耦合了,这部分知识了解下就行;建议学完这门课后学一下Vue基础,现在都是前后端分离

http://127.0.0.1:5000/ : Not Found

The requested URL was not found on the server. If you entered the URL manually please check your spelling and try again.

一开始还在想在哪里传参呢,原来在url输入框里,/5,不然404;上面刚写过: 404

然后还去问GPT,以为自己代码写错了,还是要有常识,以及看操作时要用心

说实话,看视频的时候感觉就这么几行代码,讲十多分钟,结果看完视频自己去实操还是要花半小时

http://127.0.0.1:5000/5 用户id5

模板访问对象属性·

参考:·

欢迎来到 Jinja2 — Jinja2 中文手册 2.8 documentation (pythontab.com)

常见问题 — Jinja2 2.7 documentation (jinkan.org)

Flask学习与项目实战3:简单入手模板及高阶使用_flask实战 pdf-CSDN博客

数据库·

orm模型·

ORM对象关系映射:使python能通过面向对象的方式操作关系型数据库

不需要写原生SQL语句、防止SQL注入、灵活

参考

greyli/helloflask: Hello, Flask! (github.com)

国人写的,有Book

miguelgrinberg/flasky: Companion code to my O’Reilly book “Flask Web Development”, second edition. (github.com)

Companion code to my O’Reilly book “Flask Web Development”, second edition.

千万不要在生产服务器中启用调试模式。客户端通过调试器能请求执行远 程代码,因此可能导致生产服务器遭到攻击。作为一种简单的保护措施, 启动调试模式时可以要求输入PIN码,执行 flask run 命令时会打印在控制 台中。