zoukankan      html  css  js  c++  java
  • Python----Flask Web框架(一)

    Flask是一个轻量级的基于Python的web框架。

    本文适合有一定HTML、Python、网络基础的同学阅读。

    1. 简介

    这份文档中的代码使用 Python 3 运行。
    是的,所以读者需要自己在电脑上安装Python 3 和 pip3。建议安装最新版本,我使用的是Python 3.6.4
    安装方法,可以自行谷歌或者百度。
    建议在 linux 下实践本教程中命令行操作、执行代码。

    2. 安装

    通过pip安装Flask即可:

    pip install flask

    查看Flask的介绍和版本:

    >>> import flask
    >>> print(flask.__doc__)
    >>> print(flask.__version__)

    3. 从 Hello World 开始

    本节主要内容:使用Flask写一个显示”Hello World!”的web程序,如何配置、调试Flask。

    3.1 Hello World

    按照以下命令建立Flask项目HelloWorld:

    mkdir HelloWorld 
    mkdir HelloWorld/static
    mkdir HelloWorld/templates 
    touch HelloWorld/server.py

    statictemplates目录是默认配置,其中static用来存放静态资源,例如图片、js、css文件等。templates存放模板文件。
    我们的网站逻辑基本在server.py文件中,当然,也可以给这个文件起其他的名字。

    server.py中加入以下内容:

    from flask import Flask
    
    app = Flask(__name__)
    
    @app.route('/')
    def hello_world():
        return "Hello World!"
    
    if __name__ == '__main__':
        app.run()
         # app.run(host='127.0.0.1',port=5000)
    
    

    运行server.py

     打开浏览器访问http://127.0.0.1:5000/,浏览页面上将出现Hello World!

     终端里会显示下面的信息:

     变量app是一个Flask实例,通过下面的方式:

    @app.route('/')
    def hello_world():
        return "Hello World!"

    当客户端访问/时,将响应hello_world()函数返回的内容。注意,这不是返回Hello World!这么简单,Hello World!只是HTTP响应报文的实体部分,状态码等信息既可以由Flask自动处理,也可以通过编程来制定。

    3.2 修改Flask的配置

    app = Flask(__name__)

    上面的代码中,python内置变量__name__的值是字符串__main__ 。Flask类将这个参数作为程序名称。当然这个是可以自定义的,比如app = Flask("my-app")

    Flask默认使用static目录存放静态资源,templates目录存放模板,这是可以通过设置参数更改的:

    app = Flask("my-app",static_folder="path1",template_folder="path2")

    更多参数请参考__doc__

    >>> from flask import Flask
    >>> print(Flask.__doc__)

    3.3 调试模式

    修改代码中的输出,然后查看浏览器上是否有变化。如果你照做的话,可以看到什么变化都没有。其实Flask内置了调试模式,可以自动重载代码并显示调试信息。这需要我们开启调试模式,方法很简单,设置FLASK_DEBUG环境变量,并将值设置为1。或者设置app.debug=True

    from flask import Flask

    app = Flask(__name__)
    app.debug = True

    @app.route('/')
    def hello_world():
        return 'Hello World!'

    @app.route('/login')
    def login():
        return 'Login'
    if __name__ == '__main__':
        app.run()

    然后再次运行程序,会看到有这样的输出。这时候如果再次修改代码,会发现这次Flask会自动重启。

     

    3.4 绑定IP和端口

    默认情况下,Flask绑定IP为127.0.0.1,端口为5000。我们也可以通过下面的方式自定义:

    app.run(host=='0.0.0.0',port=80,debug=False)

    0.0.0.0代表电脑所有的IP。80是HTTP网站服务的默认端口。什么是默认?比如,我们访问网站http://www.example.com,其实是访问的http://www.example.com:80,只不过:80可以省略不写。

  • 相关阅读:
    AtCoder Beginner Contest 167
    AtCoder Beginner Contest 166
    AtCoder Beginner Contest 165
    AtCoder Beginner Contest 164
    AtCoder Beginner Contest 163
    AtCoder Beginner Contest 162
    AtCoder Beginner Contest 161
    AtCoder Beginner Contest 160
    AtCoder Beginner Contest 159
    自定义Mybatis自动生成代码规则
  • 原文地址:https://www.cnblogs.com/even160941/p/13632010.html
Copyright © 2011-2022 走看看