flask使用

基本使用

# 引入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)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

吞掉星星的鲸鱼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值