ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

第三章:FLASK最小应用和路由详解

2019-02-21 19:49:58  阅读:359  来源: 互联网

标签:__ pipenv FLASK app py flask 详解 hello 路由


一、上节回顾:

  1. 为什么需要虚拟环境?

    避免环境污染,需要引入一种新的机制。 

  2. 如何安装并使用pipenv安装第三方模块?

    1) pip install pipenv # 安装pipenv

    2) pipenv install # 安装环境

    3) pipenv shell # 进入交互模式

    4) pipenv install 第三方模块名称 #安装第三方模块

    5) exit()  #退出虚拟环境

 

二、前面我们讲过flask的轻巧和优雅,那么flask怎么用呢?

  1) 打开pycharm编辑器,打开test文件夹(也叫工程目录),如下图

 

  

  2)创建一个python文件 index.py

       

 

代码示例:

# 导入flask模块
from flask import Flask
# 实例化
app = Flask(__name__)

#flask路由
@app.route('/')
def index():
    return '这是flask的第一个示例'

#主函数
if __name__ == '__main__':
    app.run()

    启动运行

         

  浏览器调用

    

  在线一个方法 hello

  

  

  如果浏览器调用  http://127.0.0.1:5000/hello/

  

  解决此问题,只需要把路由重写写一下即可

@app.route('/hello/')

   这样就可以正常访问了。

  

  如果浏览器 继续输入 http://127.0.0.1:5000/hello

  

  反而没有错?为什么?那我们抓一下包

  

  

  因为走了两次请求

    第一次请求返回301重定向,重定向地址 Location:http://127.0.0.1:5000/hello/

    第二次直接请求的是http://127.0.0.1:5000/hello/

  这样就出现之前的那个结果了

  

   

 三,路由实现原理

  

@app.route('/hello') 本质上是一个装饰器,是将add_url_rule()方法的封装,如下图:

   

    所以说 @app.route('/hello') 也可以这样写 

   

 

四,启动参数

    

 

    host: 指定ip地址 一般会写 0.0.0.0

    port: 指定的端口号

    debug: 开启/关闭调试模式

    load_dotenv: 用来加载设置环境变量的文件 例如说 .env, .flaskenv,也会改变工作方式目录到包含找到的第一个文件的目录

      可以在根目录文件下创建config.py文件,在入口文件 app.py 里引入

    config.py

       

    index.py

      

 

五、 怎么理解if __name__ == '__main__' 这句话?

  绝大部分python程序都会有这个语句,确保if里面的语句执行的条件。如果这个文件是 __main__(主程序)时,这个条件里的程序才会执行。这只是我们利用flask的简易的web服务的时候,也就是平时我们开发时需要的环境。但是在生产环境中,我们一般会采取nginx+uwsgi方式来部署,在生产环境中,这个py文件是被导入执行,所以__name__ 就是导入文件的那个文件名称,如果没有if 判断的话,app.run()会被执行两次,这样会引起flask的冲突。所以加上这个if语句。

 

六、视图函数和普通函数有什么区别?

      普通函数返回:可以返回字符串,列表,远祖,字典,以及对象

      视图函数返回: 返回Response对象,并可能会附加一些其他的信息,比如说状态码(status code),返回类型(content-type),以及其他。

        

        

        

        

        

        当然也可以简写 :

          @app.route('/hello')

          def hello():

            headers = {

              'headers':'text/plain'

            }

            return '<html></html>',500,headers

        

 

 

    

 

标签:__,pipenv,FLASK,app,py,flask,详解,hello,路由
来源: https://www.cnblogs.com/wuxiaoshi/p/10413515.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有