用Flask Web框架,实现浏览器页面交互。在此之前需要了解web的基本工作流程,可参照https://blog.csdn.net/m0_37466453/article/details/72752684。

1. 我们将要做什么?

我们希望做一个简单的包含页面简单交互的例子。

从页面entry.html中输入Phrase表示某1段英文,然后从中超出letters表示特定的几个字母。

2. 初次使用Flask Web框架

Flask是开源的轻量级Python框架。

  1. 导入Flask

C:\Users\dell>py -3 -m pip install flask

  2. 检查Flask是否安装好并能正常工作

        a. 在目录下创建一个如下hello_flask.py 文件,例如创建E:\Code\PythonLearning\WebApp\hello_flask.py

from flask import Flask

app = Flask(__name__)

@app.route('/')
def hello() - > str:
return 'Hello world from Flask!' app.run()

  b. 启动Flask Web服务器

在cmd以管理员权限运行后,输入以下命令

C:\Windows\system32>cd E:\Code\PythonLearning\WebApp
C:\Windows\system32>e:
E:\Code\PythonLearning\WebApp>py -3 hello_flask.py

当显示 * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)时说明启动成功。

   c. 从浏览器中输入http://127.0.0.1:5000即可查看到hello_flask.py的运行结果‘Hello world from Flask!’

3. 应用实现步骤

为了实现1中描述的“”从页面entry.html中输入Phrase表示某1段英文,然后从中超出letters表示特定的几个字母。”

1. 按以下目录建好相应的文件夹及内容

webapp
|
|----vsearch4web.py
|
|----static
|        |
|        |----hf.css
|
|----templates
|        |
|        |----base.html
|        |
|        |----entry.html
|        |
|        |----result.html

文件内容

vsearch4web.py

from flask import Flask, render_template, request
from vsearch import search4letters app = Flask(__name__) @app.route('/search4',methods=['GET','POST'])
def do_search() -> 'html':
phrase = request.form['phrase']
letters = request.form['letters']
title = 'Here are your results:'
results = str(search4letters(phrase,letters))
return render_template('result.html',the_title=title,the_phrase=phrase,the_results=results,the_letters=letters) @app.route('/')
@app.route('/entry')
def entry_page() -> 'html':
return render_template('entry.html',the_title='Welcome to this Web!') if __name__=='__main__':
app.run(debug=True)

base.html

<!doctype html>
<html>
<head>
<title>{{the_title}}</title>
<link rel="stylesheet" href="static/hf.css"></>
</head>
<body>
{% block body %} {% endblock %}
<body/>
</html>

entry.html

{% extends 'base.html' %}

{% block body %}

<h2> {{the_title}} </h2>

<form method='POST' action='/search4'>
<table>
<p>Use this Form to submit a search request:</p>
<tr>
<tr><td> Phrase:</td> <td><input name='phrase' type='TEXT' width=''></td></tr>
<tr><td> Letters:</td> <td><input name='letters' type='TEXT' value='aeiou'></td></tr>
</table>
<p>When you're ready, click this button:</p>
<p><input value='Do it' type='SUBMIT'></p>
</form> {% endblock %}

result.html

{% extends 'base.html' %}

{% block body %}

<h2>{{the_title}}</h2>

<p>You submitted the following data:</p>
<table>
<tr>
<td>Phrase:</td><td>{{the_phrase}}</td>
</tr>
<tr>
<td>Letters:</td><td>{{the_letters}}</td>
</tr>>
</table> <p>When "{{the_phrase}}" is searched for "{{the_letters}}"
, the folLowing results are returned:</p>
<h3>{{the_results}}</h3> {% endblock %}

hf.css

body {
font-family: Verdana, Geneva, Arial, sans-serif;
font-size: medium;
background-color: tan;
margin-top: 5%;
margin-bottom: 5%;
margin-left: 10%;
margin-right: 10%;
border: 1px dotted gray;
padding: 10px 10px 10px 10px;
}
a {
text-decoration: none;
font-weight: 600;
}
a:hover {
text-decoration: underline;
}
a img {
border: 0;
}
h2 {
font-size: 150%;
}
table {
margin-left: 20px;
margin-right: 20px;
caption-side: bottom;
border-collapse: collapse;
}
td, th {
padding: 5px;
text-align: left;
}
.copyright {
font-size: 75%;
font-style: italic;
}
.slogan {
font-size: 75%;
font-style: italic;
}
.confirmentry {
font-weight: 600;
} /*** Tables ***/ table {
font-size: 1em;
background-color: #fafcff;
border: 1px solid #909090;
color: #2a2a2a;
padding: 5px 5px 2px;
border-collapse: collapse;
} td, th {
border: thin dotted gray;
} /*** Inputs ***/
input[type=text] {
font-size: 115%;
width: 30em;
}
input[type=submit] {
font-size: 125%;
}
select {
font-size: 125%;
}
输入py -3 vsearch4web.py来启动Flask Web服务器后,在浏览器输入http://127.0.0.1:5000,在输入框中输入需要查找的字段来查看其中出现的元音。
此文为《Head First Python》读书笔记,便于日后查阅。

Python 6 -- 构建一个Web应用的更多相关文章

  1. Eclipse的maven构建一个web项目,以构建SpringMVC项目为例

    http://www.cnblogs.com/javaTest/archive/2012/04/28/2589574.html springmvc demo实例教程源代码下载:http://zuida ...

  2. 使用maven构建一个web项目

                          使用maven构建一个web项目     首先建立一个maven项目(关于环境配置上节有详细过程): 1)-->右键new,-->project ...

  3. 使用maven命令终端构建一个web项目及发布该项目

    构建环境: maven版本:3.3.9 系统平台:Windows7 x64 JDK版本:1.7 构建步骤: 1.打开maven安装目录,在地址栏输入cmd进入命令窗口 2.输入命令mvn archet ...

  4. 使用Flask构建一个Web应用

    Flask是一个使用Python编写的轻量级Web应用框架. 一.安装Flask 以管理员身份,打开命令提示符窗口,输入下面命令 py -3 -m pip install flask 这个命令会连接到 ...

  5. maven 构建一个web项目

    maven已经大型的Java项目的管理工具,其功能非常强大,这里简单总结一下maven构建web项目的过程.本文介绍的是集成环境下的maven构建web项目. 一.准备 1.安装maven. 2.把m ...

  6. jmeter 构建一个Web测试计划

    添加用户 第一步你想做的每一个JMeter测试计划是添加一个 线程组 元素. 线程组告诉 JMeter的用户数量你想模拟,用户应该发送的次数 请求,请求他们应该送多少. 继续添加ThreadGroup ...

  7. 【springBoot】之快速构建一个web项目

    基于maven,首先看pom文件 <parent> <groupId>org.springframework.boot</groupId> <artifact ...

  8. 从零构建一个简单的 Python Web框架

    为什么你想要自己构建一个 web 框架呢?我想,原因有以下几点: 你有一个新奇的想法,觉得将会取代其他的框架 你想要获得一些名气 你遇到的问题很独特,以至于现有的框架不太合适 你对 web 框架是如何 ...

  9. 零基础学python之构建web应用(入门级)

    构建一个web应用 前面的学习回顾: IDLE是Python内置的IDE,用来试验和执行Python代码,可以是单语句代码段,也可以是文本编辑器中的多语句程序. 四个内置数据结构:列表.字典.集合和元 ...

随机推荐

  1. 抽屉之Tornado实战(6)--session工厂(工厂方法模式)

    我之前写的session一般保存在服务器的内存里,那可以保存在缓存,或是数据库,那问题来了,不同地方,保存方式是不同的,所以需要定义不同的类,cache/redis/memcached类 sessio ...

  2. 抽屉之Tornado实战(2)--数据库表设计

    经过我们上次分析,数据库要有最基本的四张表,用户表,消息表,类型表,点赞表,评论表,接下来我们看着怎么设计吧 首先我们要清楚,表设计的代码是写在models下的 用户表 #一张表对应一个类 class ...

  3. 新兴的API(fileReader、geolocation、web计时、web worker)

    requestAnimationFrame() 每次浏览器重绘之前会调用这个方法!!! 它接收一个参数,就是回调函数: 它可以保证在最佳的间隔时间调用传入的回调函数,以达到让屏幕产生最流畅的动画效果. ...

  4. StringDemo

    package cn.sasa.demo2; public class StringDemo { public static void main(String[] args) { //String 底 ...

  5. 洛谷P3237 米特运输 [HNOI2014] hash/二进制分解

    正解:hash/二进制分解 解题报告: 传送门! umm首先提取下题意趴QAQ 大概是说给一棵树,每个点有一个权值,要求修改一些点的权值,使得同一个父亲的儿子权值相同,且父亲的权值必须是所有儿子权值之 ...

  6. Verilog如何从外部更改模块内参数

    例如有一个模块 module x(a,b,c); input a,b; output c; 'd0, h=9'd3; ...... endmodule 两种解决方法: 1.使用带有参数值的模块实例语句 ...

  7. 【剑指offer】二叉搜索树与双向链表

    一.题目: 输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表.要求不能创建任何新的结点,只能调整树中结点指针的指向. 二.思路: 对于一棵搜索二叉树来说,中序遍历得到的即是有序的结果,所以整 ...

  8. logging日志模块的使用

    logging日志模块的使用 logging模块中有5个日志级别: debug 10 info 20 warning 30 error 40 critical 50 通常使用日志模块,是用字典进行配置 ...

  9. 263A

    #include<stdio.h> #include<stdlib.h> int main() { int i, j; int temp; int t_i, t_j; int ...

  10. 【MySQL】-NO.21.MySQL.1.MySQL.1.001-【Install MySQL5.7 On Windows】

    1.0.0 Summary Tittle:[MySQL]-NO.21.MySQL.1.MySQL.1.001-[Install MySQL5.7 On Windows] Style:Web Serie ...