在上一篇文章:Flask:项目的准备工作中,我写了flask项目的准备工作,不清楚创建flask项目需要做哪些准备的朋友可以点击链接看看

1、最简单的Flask项目

代码:

from flask import Flask

# 创建一个应用
app = Flask(__name__) @app.route("/")
def index():
return "hello flask" if __name__ == '__main__':
app.run(host="127.0.0.1", port=5000, debug=True)

  在pycharm中直接运行就可以让项目跑起来了,在浏览器输入127.0.0.1:5000查看结果:

2、代码解析

(1)第一部分

from flask import Flask

  导包代码就不用多做解释了吧,这一句代码的作用就是从flask框架中导入一个名为Flask的类

(2)第二部分

# 创建一个应用
app = Flask(__name__)

  这里就是实例化一个名为app的Flask对象,并将变量__name__作为参数传入到对象里面,对变量__name__有疑问的朋友可以看下这篇博客:python:__name__的使用

(3)第三部分

@app.route("/")
def index():
return "hello flask"

  上面的@app.route("/")是一个装饰器,下面的index()是一个视图函数,在pycharm按住ctrl键点击route查看源代码:

def route(self, rule, **options):
def decorator(f):
endpoint = options.pop("endpoint", None)
self.add_url_rule(rule, endpoint, f, **options)
return f return decorator

  使用这个装饰器将把"/"传给rule参数,将函数index()传给装饰器内嵌函数的f参数;最后,很明显,这里没有给**options传参,因此options(数据类型为字典)为空

  内嵌函数的第一句:endpoint = options.pop("endpoint", None),使用pop方法从字典中将key为"endpoint"的value取出来给endpoint变量,若这个key不存在则将None传给变量endpoint;很明显,这里的options为空,因此endpoint的值为None

  内嵌函数的第二句:self.add_url_rule(rule, endpoint, f, **options),将变量rule("/")、endpoint(None)、f(视图函数index)、**options(为空)作为参数传给add_url_rule方法

  限于篇幅,这里就不继续深究add_url_rule()方法的作用了,有兴趣的朋友可以通过pycharm去查看它的源代码

(4)第四部分

if __name__ == '__main__':
app.run(host="127.0.0.1", port=5000, debug=True)

  这里执行app的run()方法,并传入几个参数,查看下run()的源代码(这里不展示完整源代码,只提取部分先进行分析):

def run(self, host=None, port=None, debug=None, load_dotenv=True, **options):
if debug is not None:
self.debug = bool(debug) _host = "127.0.0.1"
_port = 5000
host = host or sn_host or _host
port = int(next((p for p in (port, sn_port) if p is not None), _port))

  这段代码还是比较容易理解的,先是将self.debug属性设置为run方法传进来的debug参数的值,然后在对host和port进行赋值。可以看出,默认情况下,host的值为127.0.0.1,port的值为5000

  注意:上面这段代码并非run()方法全部的源代码,源代码比较长,这里不过多展示,有兴趣的朋友可以自己去看,查看源代码对学习者的python功底有一定要求

Flask:第一个Flask项目的更多相关文章

  1. Python框架学习之用Flask创建一个简单项目

    在前面一篇讲了如何创建一个虚拟环境,今天这一篇就来说说如何创建一个简单的Flask项目.关于Flask的具体介绍就不详细叙述了,我们只要知道它非常简洁.灵活和扩展性强就够了.它不像Django那样集成 ...

  2. 1、Flask实战第1天:第一个Flask程序

    Flask是流行的python web框架...(* ̄︶ ̄) 零基础到企业级论坛实战,人生苦短,我用python,开启FLask之旅吧... 安装开发环境 下载Python win版安装包 双击运行, ...

  3. 第一个flask程序

    flask简介: flask是一款非常流行的Python Web框架,出生于2010年,作者是Armin  Ronacher,本来这个项目只是作者在愚人节的一个玩笑,后来由于非常受欢迎,进而成为一个正 ...

  4. python flask框架学习(二)——第一个flask程序

    第一个flask程序 学习自:知了课堂Python Flask框架——全栈开发 1.用pycharm新建一个flask项目 2.运行程序 from flask import Flask # 创建一个F ...

  5. [Python自学] Flask框架 (1) (Flask介绍、配置、Session、路由、请求和响应、Jinjia2模板语言、视图装饰器)

    oldboy:s9day114 参考博客:https://www.cnblogs.com/wupeiqi/articles/7552008.html 一.Flask简介 1.安装Flask pip i ...

  6. 创建第一个flask项目

    安装flask模块 pip install flask或conda install flask 创建一个run.py文件,文件内容如下: from flask import Flask app = F ...

  7. 【Centos】【Python】【Flask】阿里云上部署一个 flask 项目

    1. 安装 python3 和 pip3 参考:http://www.cnblogs.com/mqxs/p/8692870.html 2.安装 lnmpa 集成开发环境 参考:http://www.c ...

  8. Flask 使用pycharm 创建项目,一个简单的web 搭建

    1:新建项目后 2:Flask web 项目重要的就是app 所有每个都需要app app=Flask(__name__)   3:Flask 的路径是有app.route('path')装饰决定, ...

  9. 从零开始用 Flask 搭建一个网站(一)

    前言 笔者之前未接触过 Python,只是略懂一点前端,所以说从零开始也相差无几吧.Flask 是一个轻量级的基于 Python 的框架,但是扩展性非常良好(Github 上 22000 多个 sta ...

随机推荐

  1. Mybatis面试题吐血总结

    高强度训练第二十天总结:Mybatis面试题 什么是Mybatis? Mybatis 是一个半 ORM(对象关系映射)框架,它内部封装了 JDBC,开发时 只需要关注 SQL 语句本身,不需要花费精力 ...

  2. 短视频处理LanSoEditor-SDK之功能介绍

    短视频处理LanSoEditor-SDK之功能介绍  (注释: 我们的SDK每3周更新一次, 一下功能是在2.8.2版本上列出的,可能不是最新的功能, 请知悉) 和别家最大的不同在于: 别人提供功能, ...

  3. Python3编码解码url

    python2和python3对于url的解码和编码 某天做爬虫时遇到一个post请求的参数是编码过的字符串如下,看不懂,初步判断可能是url编码 str = "%7B%22Shopping ...

  4. latex转word公式 java (latextoword,latex_word,latex2word,latex_omml)

    latex_word 主要目的:     给大家分享一个我的原创作品:latex转为word公式(omml)工具 [java] 此工具主要用于将含有latex公式的文本下载成word时,将latex转 ...

  5. MongoDB 学习笔记之 游标

    游标: 游标是查询的接口,可以逐条读取. var mycursor = db.bar.find(); mycursor.hasNext(); mycursor.next(); 示例: var mycu ...

  6. 死磕 java线程系列之线程池深入解析——体系结构

    (手机横屏看源码更方便) 注:java源码分析部分如无特殊说明均基于 java8 版本. 简介 Java的线程池是块硬骨头,对线程池的源码做深入研究不仅能提高对Java整个并发编程的理解,也能提高自己 ...

  7. 初识Django,了解一下大概流程

    学习Django一个礼拜了,对其有了一个大概的了解,自己画了一个简单的图,虽然有点丑,但是基本上已经把自己所想已经表达 写完这篇随笔之后发现自己逻辑表述的有点不太清晰,有点乱,哪里不对,希望各位指正 ...

  8. 致所有.Net者和有梦想的朋友们 - 共勉

    这篇文章很早就想写的了,主要是人到了一定的年纪,就想唠叨一些看法,认不认可不重要,重要的是生活给予你的酸甜苦辣,你都想一吐为快. 这里主要基于多年来自己的一个行业感受和以及生活感想,唠叨一下工作以及生 ...

  9. Linux之shell基础

    Shell基础 一.shell概述 1) shell是一个命令行解释器,它为用户提供了一个向Linux内核发送请求以便运行程序的界面系统级程序,用户可以用shell来启动.挂起.停止甚至是编写一些程序 ...

  10. java位运算,逻辑运算符

    位运算逻辑运算符包括: 与(&),非(~),或(|),异或(^). &:  条件1&条件2  ,只有条件1和条件2都满足, 整个表达式才为真true,  只要有1个为false ...