最近看到一個 Python 的輕量化的 web 框架 Flask,恰好我有一些做的東西需要做成 demo給別人看,就簡單的做了一個例子,方便以后再用的時候參考。
Flask 簡介
引用 Flask 官網(wǎng)的例子
# hello.py
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
return 'Hello World!'
if __name__ == '__main__':
app.run()
運行一下:
$ python hello.py
Running on http://127.0.0.1:5000/
Flask 安裝可以參考:http://docs.jinkan.org/docs/flask/quickstart.html#a-minimal-application
用來做 demo 的例子
這里一個demo,用戶從網(wǎng)頁上輸入一句話,點擊發(fā)送之后,返回這個字符串的倒序。以這個例子為基礎,可以擴展出很多功能,比如聊天機器人、查詢數(shù)據(jù)等等,只要改一下對輸入的處理函數(shù)就可以了。

image-20190318121146079.png
參考代碼
目錄結(jié)構(gòu)
demo.py
templates/
-- index.html
demo.py
import os
from flask import Flask, request, render_template, Markup
app = Flask(__name__)
@app.route('/', methods=['GET', 'POST'])
def demo():
if request.method == 'GET':
return render_template('index.html', input_text = '', res_text = '')
else:
inputText = request.form.get("input_text")
resText = Markup(formatRes(reverseText(inputText)))
return render_template('index.html', input_text = inputText, res_text = resText)
def formatRes(textList):
return '<p>' + '</p><p>'.join(textList) + '</p>'
# A sample
def reverseText(text):
res = []
res.append('Original text: %s' %(text))
res.append('Converted text: %s' %(''.join(reversed(list(text)))))
return res
if __name__ == '__main__':
app.run()
index.html
<html>
<style>
.query{font-size:20px}
.result{font-size:20px;margin:0 auto;line-height: 10px;}
</style>
<form method="post" action="/">
<table>
<td>
<p> 發(fā)送 </p>
</td>
<td>
<textarea type="text" class="query" name="input_text" id="input_text" value="" style="width:1000px;height:40px" onkeydown="if (event.keyCode == 13) { this.form.submit(); return false; }">{{input_text}}</textarea>
<input type="submit" for="input_text" value="提交">
</td>
</table>
<table>
<td>
<p> 返回 </p>
</td>
<td>
<div type="text" class="result" name="res_text" id="res_text" value="" style="width:1000px;height:500px;overflow-y:auto;border-style:solid; border-width:1px; border-color:#000">{{res_text}}</div>
</td>
</table>
<script>
var textarea = document.getElementById('res_text');
textarea.scrollTop = textarea.scrollHeight;
</script>
</form>
</html>