投稿    登录
  《Python3网络爬虫开发实战》赠书活动正在进行中!详情请戳赠书活动!欢迎参与!非常感谢!

【Python搞搞轻量Blog】第一发 Flask入门

Python 仙宇 7974浏览 119评论

 大家好,我是仙宇(其实就是咸鱼)

我发现很多小伙伴一直想着有自己的一个博客,而且还想自己写一个。

你们都这么爱折腾,我就给你们搞一个轻量级级别的Blog.

准备

我们要用Python来写一套轻量级的博客,那么必须要有Python方面的基础.

如果有HTML和CSS的基础食用更佳…

 

介绍 AND 框架选择

Python有很多Web框架,可谓是百家争鸣,我这里列出几个比较叼的几个框架

  • Django      市场占有率最高,官方文档几近完美,但是适合比较大的项目,小项目会显得累赘。
  • Tornado    可异步,性能高,提供更多的底层细节,还能进行Web Socket,但是和数据库…..(大坑)
  • Web.py      小巧,精炼,扩展不是很多,而且问题是作者太牛掰,被上帝请去喝茶了。
  • Flask          年轻,2010年出现、可扩展、小巧、内置开发服务器和调试器、使用jinja2模板、完全兼容WSGI 1.0

 

框架十分多,但是我们用哪个框架来搞我们的轻量级博客呢?

答案是: Flask

 

理论概念 MVC

啥事MVC呢?

很多小伙伴一脸懵逼,这Tm又是个神马?

M:Model ==> 数据库模型

V:Views ==> 可以理解为定义网页的地址,以及渲染网页等

C:Controller ==> 可以理解为 网页功能的逻辑,实现

 

安装

Flask 库的名字就叫 flask

我们使用pip进行安装

pip: 专门负责对python库的管理

install: 安装

选用豆瓣的Pypi库安装flask会很快(国内)

 

测试是否成功安装

打开Python

只要没报错,就是成功安装 Flask库了

裸跑Web应用

库已经安装了,那就该讲讲如何利用Flask来写一个简单的Web应用。

我们来运行试试。

然后我们去用浏览器访问页面

开启Debug调试

如果我们修改了代码,我们需要将开启的Web程序关闭再开启,这样会影响开发效率,也很烦。

Flask内部有一个功能,专门针对这样的事情发生。

修改代码

我们添加了一个参数,就是debug,这个参数默认是False

开启这个功能后,我们每次修改完代码,Web应用对自动进行调整。

现在修改代码并且保存,应用就会自动更新你的代码。

分析

现在我们来分析一下代码

所有Flask程序都需要进行创建一个实例。Web服务器会使用WSGI协议,将接受到的客户端请求转交给这个对象处理,可以理解为代码中的app

第3行:Flask需要一个参数,这个参数通常是主模块或是包的名字。所以通常会传入 __name__

Flask用这个参数来决定程序的根目录,以便以后找到资源文件,比如网页中的图片,视频,音频等

 

第5行:可以通过使用app.config类来修改配置,开启调试模式。当然,这里所采用的方法只能适用于设置很少的时候,以后会介绍另外几种修改配置的方法。

第7行: 还记得我之前提到了MVC吗?这里就是其中V,就是路由。这里的代码的目的就是为我们来指定一个路由,也就是页面的地址。

第8 – 9行: 使用app.route()装饰器会将URL和执行的视图函数(函数 index )的关系保存在app.url_map属性上。当你访问指定的URL时,就会调用这个函数。当遇到第一个return时,就会结束。其中的return就是你的response

第12行: 执行app.run来启动服务器。默认的Flask会监听的地址是127.0.0.1:5000。我们指定host和port参数,就修改了监听地址。 服务启动后,会先判断参数host以及port是否为None,如果为None,就会将host和port修改为默认值。然后会判断debug。然后就会调用werkzeug.serving.run_simple来启动Web服务,默认会使用单进程的werkzeug.serving_BaseWSGIServer来处理客户端的请求。

(这里的Werkzeug其实就是WSGI的实现和应用,从中可以发现,Flask是基于Werkzeug开发的。你或许可以去查查Werkzeug的文档,来自己实现一个Web服务框架)

深入

我贴出Flask源码我们来瞅瞅

 

从827行代码可以发现 Flask从 werkzeug.serving引入了run_simple,之后的一部分代码就是进行调整和检验参数(host和port再有就是debug),最后把参数传给了run_simple来启动服务。

所以大家不要以为框架都是高大上,有时候看看源码,就会发现没有想象的那么困难。

再来看看 run_simple可以看到,processes就是进程,processes默认值为1。

注意

还要注意的就是,这里的app.run的启动方法,只适合在码代码的时候调试。

千万不要在产品上线的时候也用这种方法来启动服务!!!

以后我会给大家介绍在生产环境下如何配置。

或许大家可以去看看关于uWSGI的文章。

最后,贴上我微信二维码,有问题的小伙伴请留言,我也在学习,希望大家有什么坑可以抛出来交流。

 

转载请注明:静觅 » 【Python搞搞轻量Blog】第一发 Flask入门

喜欢 (45)or分享 (0)

想学更多爬虫知识?《Python3网络爬虫开发实战》这本书也许更适合你~

了解详情or立即购买

我的个人微信公众号

扫码或搜索:进击的Coder

进击的Coder

微信公众号 扫一扫关注

想结交更多的朋友吗?

来进击的Coder瞧瞧吧

进击的Coder

QQ群号 99350970 立即加入

进击的Coder灌水太多?

这里是纯粹的技术领地

激进的Coder

QQ群号 627725766 立即加入

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请狠狠点击下面的

发表我的评论
取消评论
表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
(119)个小伙伴在吐槽
  1. Excellent post video youtube indonesia. I merely discovered a person's web site as well as planned to claim that We have actually enjoyed checking your blog site blogposts. At any rate I am following in the rss feed using this program . praying you are writing once again as soon as possible!
    video youtube indonesia2018-08-15 01:30 (2小时前)回复
  2. It抯 arduous to search out educated individuals on this subject, however you sound like you already know what you抮e talking about! Thanks
    bape hoodie2018-08-14 22:54 (5小时前)回复
  3. wh0cd15494 Viagra Without Prescription
    AaronWed2018-08-14 14:57 (13小时前)回复
  4. wh0cd15494 more bonuses
    Kennethlen2018-08-14 12:52 (15小时前)回复
  5. You made some respectable factors there. I regarded on the internet for the difficulty and located most individuals will go together with with your website.
    moncler jacket2018-08-14 07:03 (21小时前)回复
  6. WONDERFUL Post.thanks for share..more wait .. ?
    adidas flux2018-08-13 15:40 (1天前)回复
  7. I have to convey my passion for your kindness in support of persons that really need assistance with the study. Your personal dedication to passing the message up and down appeared to be remarkably helpful and have frequently allowed individuals much like me to reach their desired goals. Your entire invaluable publication signifies a whole lot to me and further more to my mates. Warm regards; from everyone of us.
    adidas ultra boost2018-08-13 11:54 (2天前)回复
  8. There are some interesting time limits on this article but I don抰 know if I see all of them center to heart. There may be some validity however I will take hold opinion till I look into it further. Good article , thanks and we would like extra! Added to FeedBurner as effectively
    michael kors outlet online2018-08-13 02:06 (2天前)回复
  9. wh0cd15494 [url=http://viagrawithoutprescription.us.com/]canadian viagra[/url]
    AaronWed2018-08-12 16:23 (2天前)回复
  10. wh0cd15494 [url=http://albuterolcheapdelivery.us.com/]albuterol[/url]
    Kennethlen2018-08-12 15:32 (3天前)回复
  11. how to hack twitter account - download program + for hacking twitter, track massage twitter
    KennethThefe2018-08-12 10:56 (3天前)回复
  12. Discover More Here AMP
    JeffreyThops2018-08-11 21:49 (3天前)回复
  13. продажа дебетовых карт - ищу транзит денег, обнал ип
    Kennethslore2018-08-11 05:07 (4天前)回复
  14. wh0cd15494 Erythromycin Sale
    AaronWed2018-08-10 17:43 (4天前)回复
1 6 7 8