簡體   English   中英

Flask-SQLAlchemy & Google App Engine - 沒有寫權限

[英]Flask-SQLAlchemy & Google App Engine - no permission to write

主文件

from flask_sqlalchemy import SQLAlchemy

app = Flask(__name__)
app.config['SECRET_KEY'] = '123'
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///database.db'
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
db = SQLAlchemy(app)


class User(db.Model):
    __table_name__ = 'user'
    id = db.Column(db.Integer, primary_key=True)
    username = db.Column(db.String(80), unique=True)
    password = db.Column(db.String(80))

    def __init__(self, username, password):
        self.username = username
        self.password = password

@app.route('/register/', methods=['GET', 'POST'])
def register():
    if request.method == 'POST':
        username = request.form['username']
        password = request.form['password']
        """Check username is available"""
        data = User.query.filter_by(username=username).first()
        if data is None:
            new_user = User(username=username, password=password)
            db.session.add(new_user)
            db.session.commit()
            return redirect(url_for('login'))
        return render_template('register2.html')
    return render_template('register1.html')

我通過 Google App Engine 部署了我的 web 應用程序,但是當我嘗試注冊時,我目前在 Google App Engine 上出現操作錯誤。

OperationalError: (sqlite3.OperationalError) 嘗試寫入只讀數據庫

似乎文件在 Google App Engine 存儲中是只讀的。

有沒有辦法在 GAE 中寫入.db 文件?

App Engine 不支持寫入本地文件,這主要是因為 App Engine 通過創建多個並行實例來擴展您的應用程序的方式。 如果不是這種情況,並且您繼續寫入每個本地文件系統中的文件,則會產生不一致,這不是您想要的。

理想情況下,對於 App Engine,您應該使用以下設置:

  • 對於 DB 存儲:使用基於雲的數據庫,就您而言,我相信您可以使用 CloudSQL,但您可以在此處找到 Google Cloud 為數據庫提供的產品,以查看更適合您的應用程序。

  • 對於文件存儲:使用雲文件存儲系統。 谷歌雲為此提供了雲存儲產品,您可以在此處查看更多詳細信息。

暫無
暫無

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

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