先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7
深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年最新Python全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上Python知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
如果你需要这些资料,可以添加V获取:vip1024c (备注Python)
正文
在 app.py 文件中写入以下代码:
~/ahoh/app.py
from flask import Flask
app = Flask(name)
@app.route(‘/’)
def index():
return ‘你好, Flask’
你可以选择使用Vim,也可以选择VSCode和PyCharm等集成开发工具。
到这里为止,整个Hello World项目就写完了,真是太容易了。
下面就要跑起来我的Hello World项目,只需要在命令行中输入flask run:
(venv)~/ahoh$ flask run # 启动Flask应用
Environment: production
WARNING: This is a development server. Do not use it in a production deployment.
Use a production WSGI server instead.
Debug mode: off Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
如果输出和上面一样,很有可能就是成功了,这个时候,只需要在浏览器中输入127.0.0.1:5000就能访问网站了!
你的结果和我一样吗?为了写这个小项目,我还专门搭建了项目论坛:www.ahoh.club ,欢迎来访!(这不是广告,里面只有我一个人,哈哈哈)
2. 你好,HTML
上小节中,我已经成功让Hello World项目输出了你好,Flask,但这绝不是我最终的要求。
我想要的必然是花里胡哨的网页,也就是HTML页面。
既然需要HTML,那就直接写个HTML代码,并通过/html访问新的HTML页面,在app.py中追加代码如下:
~/ahoh/app.py
@app.route(‘/html’)
def html():
html_str = “”"
HTML页面
我的第一个HTML页面
Oh,我的老天爷啊,这真是一个了不得的项目,我向上帝保证这是真的。
“”"
return html_str
然后,使用flask run命令重新启动Ahoh项目,在浏览器中输入127.0.0.1/html,就可以看到一个简单的HTML页面了!
虽然已经可以看到了HTML页面,还存在一个严重的问题:哪个小傻瓜还会在业务代码里面写HTML呢?
常规情况下,HTML都是存储在.html文件中的,和业务代码隔离,还好Flask早就想好处理方式。
在Flask中,所有的HTML文件默认存储在templates文件夹下,所以,需要先创建templates文件夹,然后在文件夹内创建HTML文件,这里我就创建一个hello.html文件。
(venv)~/ahoh$ mkdir templates # 创建templates文件夹
(venv)~/ahoh$ touch templates/hello.html # 创建html文件
然后将上面例子中html_str中的值复制到hello.html文件中,然后稍作修改,如下:
HTML页面
我的第二个HTML页面
How Are You, Savior
首先,在app.py文件的头部引入render_template函数:
from flask import render_template
然后,在app.py 中追加新的路由函数,访问路径就定为/hello:
~/ahoh/app.py
@app.route(‘/hello’)
def hello():
return render_template(‘hello.html’)
这样,就完成了hello.html文件的添加,此时,使用flask run重启服务,在浏览器中输入地址127.0.0.1:5000/hello就能看到第二个HTML页面了!
这里,我们使用了一个新的函数render_template(),这个函数可以直接渲染HTML文件,不需要我们从文件中读出HTML代码后再返回,后面我们使用的Jinja模板也需要通过这个函数渲染。
3. 你好,Jinja
截至小节2,我们已经可以成功的利用Flask返回一个HTML页面了。
但是,当前的页面只是一个静态的HTML,文件中的内容都是写死了的,这当然不是我想要的结果。
这里就要引入Flask默认的HTML模板引擎Jinja。
在templates文件夹中,新建jinja.html文件,然后将hello.html中的内容复制过去,并稍作更改。
如下:
Jinja页面
我的第一个Jinja页面
How Are You, {{name}}
然后,在app.py中新建一个路由函数(视图函数),即追加如下代码:
~/ahoh/app.py
@app.route(‘/jinja’)
def jinja():
return render_template(‘jinja.html’,name=‘Jinja’) # 使用name='Jinja’向HTML中传入值
这里,我们就成功的创建了一个动态的页面,在视图函数中,修改name的值,前端HTML就会做出相应的变化。
而name的值,从后端(视图中)传递到前端(HTML页面中)也非常的简单,只需要在render_templates()函数中增加一个参数就可以了。
到这里就结束了吗?当然,没有,我们虽然创建了一个使用Jinja的HTML页面,也实现了从后端向前端传递参数,可以动态的修改页面,但是,如何从前端向后端传递参数呢?
在templates文件夹中创建文件新的HTML页面,命名为:para.html,然后将jinja.html中的内容复制过去,并稍作修改,如下:
参数传递
传递参数页面
How Are You, {{name}}
然后在app.py中创建一个新的视图函数,在app.py文件中追加如下内容:
~/ahoh/app.py
@app.route(‘/para’)
@app.route(‘/para/string:name’)
def para(name=‘God’):
return render_template(‘para.html’,name=name)
现在,就可以重启Ahoh应用,然后在浏览器地址栏中输入127.0.0.1:5000/para/老天爷,效果如下:
这种传递参数的方式是通过URL路径传递,可能大多数人更熟悉的是使用?para_name=value的方式,在Flask中同样是可以用的,不过需要在视图函数中使用request.args.get('para_name')的方式获取传递的值。
感兴趣的童鞋赶快去试试吧,不会做可以留言讨论呦。
4. 你好,templates
最后,也是本文的重点内容,疲倦的同志提提神了!Jinja模板的引入。
经过第3小节的学习,相信童鞋们都已经非常清楚,如何添加一个HTML页面,并创建对应的视图函数了。
但是,有一个问题,当我创建一个HTML页面的时候,都要完整的在文件中写入一个页面的代码。
而这些代码,大部分情况下都是重复的。
通常情况下,一个页面的HTML代码是非常长的,如果每次建立新的页面会非常浪费时间。
我希望有一种类似于类继承的机制,可以避免重复代码的出现,这就是Jinja的模板机制。
首先,我需要先创建一个基础模板,类似于Python或者Java的基类。
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
需要这份系统化的资料的朋友,可以添加V获取:vip1024c (备注python)
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长! 完整的在文件中写入一个页面的代码。
而这些代码,大部分情况下都是重复的。
通常情况下,一个页面的HTML代码是非常长的,如果每次建立新的页面会非常浪费时间。
我希望有一种类似于类继承的机制,可以避免重复代码的出现,这就是Jinja的模板机制。
首先,我需要先创建一个基础模板,类似于Python或者Java的基类。
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
需要这份系统化的资料的朋友,可以添加V获取:vip1024c (备注python) [外链图片转存中…(img-Gtvaosl1-1713207187345)]
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
推荐阅读
发表评论