最近在学习flask框架,最快的学习方式一方面是看官方文档 。在看完官方文档给的示例项目后,还想再看一些初学的项目来熟悉此框架 。因此,本系列博客只要是来记录自己学习flask框架所看的项目源代码 。
本篇主要是对项目
1. 项目简介
项目地址为
https://github.com/greyli/sayhello
该项目主要有如下几个文件组成
根据.md中的讲解,在安装好相关环境依赖后,通过如下方式启动项目
$ flask forge$ flask run* Running on http://127.0.0.1:5000/
使用浏览器打开页面后,是这样的效果:
此项目的功能逻辑较为简单,主要是发送消息,然后所有人都可以看到 。
2.过程讲解
我们可以按照刚才执行的步骤来一步一步的阅读相关的代码 。
2.1 forge方法
首先在启动之前,我们执行了一条命令
flask forge
此命令看字面意思是,让flask框架去执行一个叫forge的方法,从源代码中,我们可以搜索下是否有个这个 forge 关键字的代码:
在.py文件中,确实有个叫forge的方法 。通过阅读注释,可以知道这个方法的主要作用是虚拟出一些信息 。而且有个count参数,代表要虚拟出具体多少条消息 。对于具体的实现,则是通过一个叫Faker的对象,来生产出数据,然后根据count值来生成具体多少条信息:
for i in range(count):message = Message(name=fake.name(),body=fake.sentence(),timestamp=fake.date_time_this_year())
2.2 index方法
在我们在网页输入上对应的IP:PORT后,会跳转到主页 。因此,我们可以查看主页的代码是如何实现的 。在view.py中,可以找到对于路由为’/'对应的方法:
此方法包含了前端信息提交以及信息展示两个功能 。
首先是判断是否有合规提交,若有合规提交,就将数据写入到数据库中并重新加载主页 。对于数据的提交,在获取到前端传入的数据后,会执行一个叫flash的方法,此方法主要是给前端用户返回一条提示性的消息 。此消息在渲染模板时,通过模板中的() 方法来的获取并渲染:
在加载主页前,会将数据经过排序后,传入到模板中填充,并返回给前端:
messages = Message.query.order_by(Message.timestamp.desc()).all()return render_template('index.html', form=form, messages=messages)
3.入口讲解
【一Flask项目学习——sayHello】在此项目中,入口为.py文件
首先是定义了此app的名字为,并且从.py中加载了配置文件 。然后通过根据加载配置文件的数据来初始化数据库,等 。
最后是将views, , 都加载到程序中 。
接下来,我们可以先看看配置文件里边都写了什么
首先是根据不同的平台,对于数据库前缀有所不同 。然后是设置,以及数据库相关的配置 。
4.其他讲解
由于此项目逻辑较为简单,刚才已经将此项目中主流程所运行的代码都说了一遍 。但是还有一些代码并不在主流程中,我们可以单独拎出来说一下 。
4.1 .py
中主要是定义了两个回调方法,在出现404,500时候,分别调用这两个方法 。
文章插图
我们可以试一下404的回调 。在浏览器中输入ip:port,并且跟上一个没有在后端中声明的路径,就可以出现404
4.2 forms.py
forms里边主要是定义了一个结构体,是前端给后端发送提交信息的结构体 。此结构体继承了,因此此结构体主要作用就是前后端传输数据时使用的 。主要分成三个属性:姓名,内容,提交 。
- 历史上三国十大倒霉鬼排行榜:蒋干第一
- 茄子芯发褐色是坏了吗
- 矿税之弊:明朝灭亡的一个重要原因
- 千古一帝秦始皇真正的死因:是被害?
- 司马懿狠过曹操百倍做一梦竟不惜痛杀爱将!
- 朱元璋怎样发明四菜一汤的?四菜一汤有何内容
- 揭秘:戎马一生的军事家郭子仪为何总会化险为夷
- 他以100骑兵击退敌军:却因一次迷道而选择自杀
- Vue项目环境搭建及创建项目流程
- Vue项目 .env .env.development .env