簡體   English   中英

如何在Flask中基於數據庫的不同列(PostgreSQL / SQLAlchemy)創建JSON文件,以便在JavaScript代碼中使用它?

[英]How would you create a JSON file based on different cols of your database (PostgreSQL/SQLAlchemy) in Flask to use it in your JavaScript code?

這會在views.py中發生嗎? 如果是這樣,將如何創建文件?

例如,在app / models.py中,一些列包括:

 class Company(db.Model):
     id = db.Column(db.Integer, primary_key = True)
     permalink = db.Column(db.String(255))
     name = db.Column(db.String(255))
     homepage_url = db.Column(db.String(255))
     description = db.Column(db.Text)
     founded_on_day = db.Column(db.Integer)
     founded_on_month = db.Column(db.Integer)
     founded_on_year = db.Column(db.Integer)

我想創建一個具有特定字段的JSON文件,為“ company”對象選擇該字段,然后以html / Javascript代碼訪問它,例如:

  d3.json("data.json", function (data) {

然后從那里選擇要渲染的特定字段。

如何根據數據庫信息創建文件。

這些視圖用於執行操作和/或將數據用作對發送到Web服務器的HTTP方法的響應。 如果您要創建一個特定的JSON文件,則更適合通過常規調用的腳本(例如cron)來完成。

另一方面,我認為您根本不需要創建JSON文件。 您將更適合創建一個用作URL的視圖,該URL用作d3.json()的第一個參數。 您可能會有這樣的事情:

from flask import jsonify

@app.route('/_get_companies')
def get_companies_json():
    companies = {}
    for c in session.query(Company).all():
        companies[c.id] = {
            'name': c.name,
            'homepage_url': c.homepage_url,
        }

    return jsonify(companies)

當然,返回的JSON對象的內容取決於您要執行的操作,但是您應該了解一下。

然后在您的JS文件中使用:

d3.json('http://domain.com/_get_companies', function(data) {
    // Process your data
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM