基本使用
# 引入flask
from flask import Flask, url_for, redirect
app = Flask(__name__)
# 路由---将函数绑定到对应的路由上
# 默认打开的路由
@app.route('/')
def index():
return '这是 index'
# 指定路由
@app.route('/hello')
def hello():
return '这是 hello'
# <username> 为路径参数 可传递给函数 ----- http://127.0.0.1:5000/user/nmk
# @app.route('/user/<username>')
# def show_user_profile(username):
# return 'User %s' % username
# <int:post_id> int类型数据 ----- http://127.0.0.1:5000/post/1
@app.route('/post/<int:post_id>')
def show_post(post_id):
return 'Post %d' % post_id
# 路径 输入 /flask返回正确内容 输入/flask/ 报错
@app.route('/flask')
def hello_flask():
return 'Hello Flask'
# 路径输入 /python /python/ 都返回正确内容 ---- 规范的URL
@app.route('/python/')
def hello_python():
return 'Hello Python'
# 测试 url_for
@app.route('/admin')
def hello_admin():
return 'Hello Admin'
# 带参数
@app.route('/guest/<guest>')
def hello_guest(guest):
return 'Hello %s as Guest' % guest
@app.route('/user/<name>')
def hello_user(name):
# 如果输入的是admin 则重定向到 hello_admin() 函数
if name =='admin':
return redirect(url_for('hello_admin'))
else:
# 否则 重定向到 hello_guest()
return redirect(url_for('hello_guest', guest = name))
if __name__ == '__main__':
# 自动调试保存
app.run(debug=True)
@app.route('/result',methods = ['POST', 'GET'])
def result():
# 判断请求方法
if request.method == 'POST':
# 获取表单数据
result = request.form
# 渲染html 并且数据传给html
return render_template('result.html',result = result)
<table border="1">
<!-- 循环渲染数据-->
{% for key ,value in result.items() %}
<tr>
<th>{{key}}</th>
<th>{{value}}</th>
</tr>
{% endfor %}
</table>
连接已有数据库
查询 固定值
# 引入 pymysql
import pymysql
# 连接数据库
conn = pymysql.connect(host='127.0.0.1', user='root', password='******', port=3306,
db='smiles')
# 游标
cur = conn.cursor()
# 查询多个条件
sql = " SELECT * FROM `cids` WHERE Smiles='c1(cccc(O)c1)C(=O)O' or Smiles='c1(cccc(OCCCCBr)c1)C(=O)OC'"
cur.execute(sql, val)
m = cur.fetchall()
m 即为查询出来的结果
查询 传参数
# mol 为不固定值
mol = [
'c1(cccc(O)c1)C(=O)O',
'c1(cccc(OCCCCBr)c1)C(=O)OC',
'c1(cc(O)cc(O)c1)C(=O)OC'
]
# 查询 XRN
sql = "SELECT XRN FROM cids WHERE Smiles= %s"
# 查询出来的结果放进 xrn 中
for mol in mol:
val = (mol,)
cur.execute(sql, val)
m = cur.fetchall()
# 去掉括号
m = m[0]
xrn.append(m)
print(xrn)
完整代码
from array import array
import numpy as np
from flask import Flask
from flask import render_template
# 引入 pymysql
import pymysql
app = Flask(__name__)
@app.route('/')
def index():
# mol = 'c1(cccc(O)c1)C(=O)O'
xrn = []
doi = []
# 目标smiles
mol = [
'c1(cccc(O)c1)C(=O)O',
'c1(cccc(OCCCCBr)c1)C(=O)OC',
'c1(cc(O)cc(O)c1)C(=O)OC'
]
# 调用 get_sim()
# test.get_sim(mol)
# 连接数据库
conn = pymysql.connect(host='127.0.0.1', user='root', password='******', port=3306,
db='smiles')
# 游标
cur = conn.cursor()
# 查询多个条件 --- 查询 cids 表中 所有字段 条件是 Smiles = c1(cccc(O)c1)C(=O)O 或者 c1(cccc(OCCCCBr)c1)C(=O)OC
# sql = " SELECT * FROM `cids` WHERE Smiles='c1(cccc(O)c1)C(=O)O' or Smiles='c1(cccc(OCCCCBr)c1)C(=O)OC'"
# 查询 XRN
sql = "SELECT XRN FROM cids WHERE Smiles= %s"
# 查询出来的结果放进 xrn 中
for mol in mol:
val = (mol,)
cur.execute(sql, val)
m = cur.fetchall()
# 去掉括号
m = m[0]
xrn.append(m)
print(xrn)
# 查询 doi
sql = "SELECT doi FROM xrns WHERE XRN= %s"
# 查询出来的结果放进 smiles 中
for xrn in xrn:
val = (xrn,)
cur.execute(sql, val)
d = cur.fetchall()
print(d)
# 去掉括号
d = d[0]
doi.append(d)
print(doi)
# for i in u:
# # mol = i
# print(i)
conn.close()
return {'doi': doi}
if __name__ == '__main__':
app.run(port=8003, debug=True)