如何查询许多表

时间:2017-01-12 11:13:06

标签: python mysql flask sqlalchemy

from flask import Flask, render_template
from flask_sqlalchemy import SQLAlchemy 
#import sqlite3 as sql 

app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql://ahmad:ahmad@192.168.3.103/utama'
db = SQLAlchemy(app)


class ak(db.Model):
    __tablename__ = 'ak'
    id = db.Column(db.Integer, primary_key=True)
    nama = db.Column(db.String)
    alamat = db.Column(db.String)
    akreditasi = db.Column(db.String)
    def __init__(self, id, nama, alamat, akreditasi):
        self.id = id
        self.city = nama
        self.alamat = alamat
        self.akreditasi = akreditasi

class av(db.Model):
    __tablename__ = 'av'
    id = db.Column(db.Integer, primary_key=True)
    nama = db.Column(db.String)
    alamat = db.Column(db.String)
    akreditasi = db.Column(db.String)
    def __init__(self, id, nama, alamat, akreditasi):
        self.id = id
        self.city = nama
        self.alamat = alamat
        self.akreditasi = akreditasi

id_jurusan = db.Table('id_jurusan',
    db.Column('id', db.Integer, db.ForeignKey('ak.id')),
    db.Column('id', db.Integer, db.ForeignKey('av.id'))
    )
@app.route('/ak')
def jurusan(jurusan):
    return render_template('index.html', rows=ak.query.all() )

@app.route('/av')
def Akuntansi():
    return render_template('index.html', rows=av.query.all() )

if __name__ == '__main__':
    app.run(debug=True, host='1.1.1.1', port=80)

我是学习python的新手,在这种情况下我研究了框架烧瓶,我在声明 SQLAlchemy 上遇到了麻烦,精确地显示了表的内容但具有相同的结构,在执行时就像这样......

[ enter image description here

哪一次成功

enter image description here

1 个答案:

答案 0 :(得分:1)

您正在使用装饰器

@app.route('/av')

成功Akuntansi()的方法不需要参数。这样可行。失败的方法需要参数jurusan( jurusan ),但您的装饰师@app.route('/ak')不会考虑这一点。

要传递参数,您需要使用这样的装饰器: @app.route("/ak/<jurusan>")然后也传递请求中的参数。