美文网首页
Python Flask 页面开发指南

Python Flask 页面开发指南

作者: 蒙浩 | 来源:发表于2020-06-02 13:55 被阅读0次

    一. Flask 的安装

    大家在开发python脚本的时候,需要安装一个比较顺手的IDE,这里推荐使用Pycharm,这个工具自动补全和一些依赖检测比较方便。安装好Pycharm后,打开Terminal:
    1.使用命令pip install -U flask

    image

    2.验证flask安装是否成功

    新建一个py文件,导入flask模块,这里如果没有报错,证明flask模块已经安装成功。


    image

    二. Flask的使用

    首先,要使用flask,需要在py脚本的同级目录新建templates和static目录,templates目录用来存放要展示的html文件;而static目录是用来存放静态文件(static files)的,在通常的 web 项目下,静态文件指的是内容不需要动态生成的文件。比如图片、CSS 文件和 JavaScript 脚本等,如果只是简单的web界面可以不适用静态文件。

    在创建好目录之后,我们来先创建py脚本:

    
    from flaskimport Flask, render_template, request
    
    app = Flask(__name__)
    
    @app.route('/')
    
    def hello_world():
    
    return render_template('base.html')
    
    @app.route('/build/')
    
    def build():
    
    return render_template('build.html')
    
    @app.route("/build/create", methods=['post'])
    
    def buildRange():
    
    begin_ghc = request.values.get('begin_ghc')
    
    return 'Get the begin_ghc info' + begin_ghc
    
    if __name__ =='__main__':
    
    app.run()
    
    

    下面是分段解释:

    
    from flask import Flask, render_template, request
    
    app = Flask(__name__)
    
    

    导入flask包,同时完成Flask的实例化。

    
    @app.route('/')
    
    def hello_world():
    
    return render_template('base.html')
    
    

    @app.route('/')使用装饰器完成 “/”和处理函数hello_world的映射,这样在访问根目录的时候就会跳转到hello_world函数,然后处理。render_template('base.html'),是加载base.html文件,这个地方要注意该文件必须在templates目录下面存在,否则会报错。

    
    if __name__ =='__main__':
    
    app.run()
    
    

    在直接调用py脚本的时候,启动flask服务端。

    接下来我们看一下base.html的实现:

    
    <html>
    
    <body>
    
        <p>
    
            <a href="http://ipadderss:5000/build/" >Range Build</a>
    
        </p>
    
    </body>
    
    </html>
    
    

    这个html是实现了一个超链接,跳转到‘/build’的处理。

    接下来是build.html:

    
    <!DOCTYPE html>
    
    <html>
    
    <head>
    
        <meta charset="UTF-8">
    
        <title>Build Range</title>
    
    </head>
    
    <body>
    
    <form action="/build/create" method="post">
    
        <p>begin_ghc: <input type="text" name="begin_ghc"></p>
    
        <input type="submit">
    
    </form>
    
    </body>
    
    </html>
    
    
    
    <form action="/build/create" method="post">是如果点击了submit按钮,会向“/build/create”发送一个post请求。
    
    <p>begin_ghc: <input type="text" name="begin_ghc"></p>是一个输入框
    
    

    这也就是说,在用户填写完begin_ghc的文本框之后,点击提交,就会将请求转到buildRange()函数处理。

    
    @app.route("/build/create", methods=['post'])
    
    def buildRange():
    
    begin_ghc = request.values.get('begin_ghc')
    
    return 'Get the begin_ghc info' + begin_ghc
    
    

    如果你想获取用户begin_ghc文本框的内容,可以使用request.values.get('begin_ghc')来获取,begin_ghc替换为要获取的文本框的名字,这样就可以获取用户输入了。
    如果运行的时候会有如下报错:

    AssertionError: View function mapping is overwriting an existing endpoint function: xxxx
    

    需要检查一下是否有函数重名了,导致映射的时候报错。

    相关文章

      网友评论

          本文标题:Python Flask 页面开发指南

          本文链接:https://www.haomeiwen.com/subject/zrsuzhtx.html