Flask生成按钮

网上文章很多,大家可以自行查找。

HTML生成按钮

Step1

现在HTML中创建表单:

1
2
3
4
5
6
7
<form method="post">
<input type="text" name="num1" value={{num1}}>
<input type="text" name="num2" value={{num2}}>
<input type="submit" name="plus" value="plus" />
<input type="submit" name="decline" value="decline" />
<input type="text" name="result" disabled value={{result}} >
</form>

Step2

在Python中创建相应的路由:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
@app.route('/', methods=['GET', 'POST'])
def index():
if request.method == 'GET':
return render_template('index.html', result='result')

# tow numbers
num1_str = request.form.get('num1')
num2_str = request.form.get('num2')
num1 = int(num1_str)
num2 = int(num2_str)

# plus or decline
plus = request.form.get('plus')
decline = request.form.get('decline')
if plus == 'plus':
res = test.plus(num1, num2)
else:
res = test.decline(num1, num2)

return render_template('index.html', result=res)

原理

  • 在HTML中对按钮进行命名
  • 在Python中使用request.form.get(‘name’)获取按钮名字
1
2
3
4
5
6
7
name = request.form.get('name')
print(name)

# if you click the button
# output name
# if you not
# output None

更多

完整源码

Ctypes

本文采用Ctypes调用C++的函数,如下:

1
2
3
4
5
6
7
8
9
10
11
12
from ctypes import cdll

# g++ -fPIC -shared test.cpp -o test.so

test = cdll.LoadLibrary(r".\Library_client\test.so")

---less---

if plus == 'plus':
res = test.plus(num1, num2)
else:
res = test.decline(num1, num2)

如果你想了解更多关于Ctypes的知识可以浏览此文章