zoukankan      html  css  js  c++  java
  • Flask 系列之 HelloWorld

    说明

    • 操作系统:Windows 10
    • Python 版本:3.7x
    • 虚拟环境管理器:virtualenv
    • 代码编辑器:VS Code

    实验目标

    创建一个显示 Hello World 页面的网站。

    环境搭建

    打开 cmd 执行下述操作

    # 创建项目文件
    mkdir todolist
    
    cd todolist
    
    # 创建代码文件夹
    mkdir app
    
    # 创建虚拟环境
    python -m virtualenv venv
    
    # 激活虚拟环境
    venvScriptsactivate
    
    # 安装 flask
    pip insatll flask
    
    # 启动 VS Code 编辑器
    code .
    

    Hello World

    todolistapp 目录下创建一个 init.py ,示例代码如下所示:

    from flask import Flask
    
    app = Flask(__name__)
    
    
    @app.route('/')
    @app.route('/index')
    def index():
        return '<h1>Hello World</h1>'
    
    

    todolist 目录下创建一个 manage.py 文件,示例代码如下所示:

    from app import app
    
    if __name__ == "__main__":
        app.run(debug=True, host='0.0.0.0', host=5000)
    
    

    在 VS Code 的 Terminal 窗口执行 python manage.py 操作,在在本地启动一个开发服务器,运行起我们的程序,等程序成功启动起来后,尝试打开浏览器访问 "http://127.0.0.1:5000/" 即可看到页面显示一个 Hello World

    使用 render_template

    todolistapp emplates 目录下创建一个 index.html 页面,示例代码如下所示:

    <!DOCTYPE html>
    <html lang="en">
    
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <title>Index</title>
    </head>
    
    <body>
        <h1>Hello World</h1>
    </body>
    
    </html>
    

    修改 todolistapp\__init__.py 文件,示例代码如下所示:

    from flask import Flask, render_template
    
    app = Flask(__name__)
    
    
    @app.route('/')
    @app.route('/index')
    def index():
        return render_template('index.html')
    
    

    尝试打开浏览器访问 "http://127.0.0.1:5000/" 即可看到相应效果。

    使用模板继承优化代码

    todolistapp emplates 目录下创建一个 base.html 页面,示例代码如下所示:

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <title>Index</title>
    </head>
    <body>
        {% block content %}{% endblock %}
    </body>
    </html>
    

    修改 todolistapp emplatesindex.html 页面,示例代码如下所示:

    {% extends 'base.html' %}
    
    {% block content %}
    <h1>Hello World</h1>
    {% endblock %}
    

    尝试打开浏览器访问 "http://127.0.0.1:5000/" 即可看到相应效果。

    页面传值

    修改 todolistapp\__init__.py ,示例代码如下所示

    from flask import Flask, render_template
    
    app = Flask(__name__)
    
    
    @app.route('/')
    @app.route('/index')
    def index():
        title = 'Home'
        greet = 'Hello World'
        return render_template('index.html', title=title, greet=greet)
    
    

    修改 todolistapp emplatesase.html 页面,示例代码如下所示:

    <!DOCTYPE html>
    <html lang="en">
    
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        {% if title %}
        <title>{{title}}'s Todo List</title>
        {% else %}
        <title>Todo List</title>
        {% endif %}
    </head>
    
    <body>
        {% block content %}{% endblock %}
    </body>
    
    </html>
    

    修改 todolistapp emplatesindex.html 页面,示例代码如下所示

    {% extends 'base.html' %}
    
    {% block content %}
    <h1>{{greet}}</h1>
    {% endblock %}
    

    尝试打开浏览器访问 "http://127.0.0.1:5000/" 即可看到相应效果。

    注意事项

    若在 VS Code 的虚拟环境下安装依赖包失败的的话,尝试以管理员方式打开 powershell 执行 Set-ExecutionPolicy RemoteSigned 即可

  • 相关阅读:
    浙江理工2015.12校赛-F Landlocked
    浙江理工2015.12校赛-G Jug Hard
    浙江理工2015.12校赛-B 七龙珠
    浙江理工2015.12校赛-A
    Smallest Bounding Rectangle
    Just a Hook(HDU1698 线段树的简单应用)
    覆盖的面积(HDU 1255 线段树)
    Prime Query (ZOJ 3911 线段树)
    JuQueen(线段树 lazy)
    2015弱校联盟(2)
  • 原文地址:https://www.cnblogs.com/hippieZhou/p/10273258.html
Copyright © 2011-2022 走看看