Flask简单学习
前言·
视频: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 |
|
您访问的博客是1。必须注明,/1,不然会报错:404 Not Found](http://127.0.0.1:5000/blog)
设置默认访问参数:
1 |
|
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 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
Companion code to my O’Reilly book “Flask Web Development”, second edition.
千万不要在生产服务器中启用调试模式。客户端通过调试器能请求执行远 程代码,因此可能导致生产服务器遭到攻击。作为一种简单的保护措施, 启动调试模式时可以要求输入PIN码,执行 flask run 命令时会打印在控制 台中。