Flask 系列之 HelloWorld

说明
- 操作系统:Windows 10
- Python 版本:3.7x
- 虚拟环境管理器:virtualenv
- 代码编辑器:VS Code
实验目标
创建一个显示 Hello World 页面的网站。
环境搭建
打开 cmd 执行下述操作
# 创建项目文件
mkdir todolist
cd todolist
# 创建代码文件夹
mkdir app
# 创建虚拟环境
python -m virtualenv venv
# 激活虚拟环境
venv\Scripts\activate
# 安装 flask
pip insatll flask
# 启动 VS Code 编辑器
code .
Hello World
在 todolist\app 目录下创建一个 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
在 todolist\app\templates 目录下创建一个 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>
修改 todolist\app\__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/" 即可看到相应效果。
使用模板继承优化代码
在 todolist\app\templates 目录下创建一个 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>
修改 todolist\app\templates\index.html 页面,示例代码如下所示:
{% extends 'base.html' %}
{% block content %}
<h1>Hello World</h1>
{% endblock %}
尝试打开浏览器访问 "http://127.0.0.1:5000/" 即可看到相应效果。
页面传值
修改 todolist\app\__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)
修改 todolist\app\templates\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">
{% if title %}
<title>{{title}}'s Todo List</title>
{% else %}
<title>Todo List</title>
{% endif %}
</head>
<body>
{% block content %}{% endblock %}
</body>
</html>
修改 todolist\app\templates\index.html 页面,示例代码如下所示
{% extends 'base.html' %}
{% block content %}
<h1>{{greet}}</h1>
{% endblock %}
尝试打开浏览器访问 "http://127.0.0.1:5000/" 即可看到相应效果。
注意事项
若在 VS Code 的虚拟环境下安装依赖包失败的的话,尝试以管理员方式打开 powershell 执行 Set-ExecutionPolicy RemoteSigned 即可
Flask 系列之 HelloWorld的更多相关文章
- Flask 系列之 部署发布
说明 操作系统:Windows 10 Python 版本:3.7x 虚拟环境管理器:virtualenv 代码编辑器:VS Code 实验目标 通过 Windows 的 WSL,将我们的项目网站部署到 ...
- 【Python】Flask系列-URL和视图笔记
1.学习目标 熟悉Flask相关知识. 熟悉web开发流程. 能独立开发Flask项目. 2.环境配置 Python虚拟环境安装 因为python的框架更新迭代太快了,有时候需要在电脑上存在一个框架的 ...
- [.NET MVC4 入门系列01]Helloworld MVC 4 第一个MVC4程序
[.NET MVC4 入门系列01]Helloworld MVC 4 第一个MVC4程序 一.练习项目: http://www.asp.net/mvc/tutorials/mvc-4/gettin ...
- AngularJS 系列 01 - HelloWorld和数据绑定
目录导读: AngularJS 系列 学习笔记 目录篇 前言: 好记性不如烂键盘,随笔就是随手笔记,希望以后有用. 本篇目录: 1. Hello World 2. AngularJS中的数据绑定 3. ...
- J2EE开发实战基础系列一 HelloWorld【转】
开始咱们的第一个程序,首先是配置环境,按照上一章所描述的方式下载开发工具,然后配置Java环境变量,给大家看下具体的结构: 环境变量配置OK的提示,如上图. Eclipse和Tomcat的文件目录 ...
- 学习go语言编程系列之helloworld
1. 下载https://golang.org/dl/ # Go语言官网地址,在国内下载太慢,甚至都无法访问.通过如下地址下载:https://golangtc.com/download. 2. 安装 ...
- Flask系列:数据库
这个系列是学习<Flask Web开发:基于Python的Web应用开发实战>的部分笔记 对于用户提交的信息,包括 账号.文章 等,需要能够将这些数据保存下来 持久存储的三种方法: 文件: ...
- J2EE开发实战基础系列一 HelloWorld
开始咱们的第一个程序,首先是配置环境,按照上一章所描述的方式下载开发工具,然后配置Java环境变量,给大家看下具体的结构: 环境变量配置OK的提示,如上图. Eclipse和Tomcat的文件目录位置 ...
- Flask 系列之 构建 Swagger UI 风格的 WebAPI
说明 操作系统:Windows 10 Python 版本:3.7x 虚拟环境管理器:virtualenv 代码编辑器:VS Code 实验 环境初始化 # 创建项目目录 mkdir helloworl ...
随机推荐
- win10个人助理conrtana软件能否支持用户反馈、后续优化
上网查找了一下,win10的个人助理不支持用户反馈.这些反馈都是用户通过别的途径来发表反馈的信息,这个缺陷让用户不是特别满意,因为反馈信息不再那么简答,变得越来越繁琐.有些人还会担心自己反馈的问题会不 ...
- Dubbo 源码分析 - 集群容错之 Directory
1. 简介 前面文章分析了服务的导出与引用过程,从本篇文章开始,我将开始分析 Dubbo 集群容错方面的源码.这部分源码包含四个部分,分别是服务目录 Directory.服务路由 Router.集群 ...
- C++内存读写例子
/************************************************************* // 声明头文件 #ifndef LyShark__h #define L ...
- CTF中文件包含的一些技巧
i春秋作家:lem0n 原文来自:浅谈内存取证 0x00 前言 网络攻击内存化和网络犯罪隐遁化,使部分关键数字证据只存在于物理内存或暂存于页面交换文件中,这使得传统的基于文件系统的计算机取证不能有效应 ...
- MapReduce多种join实现实例分析(一)
一.概述 对于RDBMS中的join操作大伙一定非常熟悉,写sql的时候要十分注意细节,稍有差池就会耗时巨久造成很大的性能瓶颈,而在Hadoop中使用MapReduce框架进行join的操作时同 ...
- CSS实现div高度自适应
1.有时候,我们希望容器有一个固定高度,但当其中的内容多的时候,又希望高度能够自适应,也即容器在纵向能被撑开,且如果有背景,也能够自适应.在一般情况下,使用min-height即可解决.但是广大网民的 ...
- 基于 jq 实现拖拽上传 APK 文件,js解析 APK 信息
技术栈 jquery 文件上传:jquery.fileupload,github 文档 apk 文件解析:app-info-parser,github 文档 参考:前端解析ipa.apk安装包信息 - ...
- git提示error setting certificate verify locations以及fatal: unable to access 的解决办法
z当使用git ------上传文件到GitHub上时!~~~出现了以下错误 :fatal: unable to access ' 可以采用以下解决方式: 修改GitHub上的地址格式=====ht ...
- mongoose的基本操作方法
mongoose 1. const mongoose = require("mongoose");导入mongoose模块 2. //注意url地址最后面的地址是数据库的名称 ...
- Apace、Ngnix、Tomcat三者关系
Apache,指的应该是Apache软件基金会下的一个项目--Apache HTTP Server Project:Nginx同样也是一款开源的HTTP服务器软件(当然它也可以作为邮件代理服务器.通用 ...