Я работаю с Flask пару недель.У меня есть веб-приложение, работающее локально И в Azure, оба подключены к моей базе данных Postgresql, работающей в Azure.Я использую Flask-SQLAlchemy для запроса моей базы данных postgresql.
Проблема, с которой я сталкиваюсь, возникает только в приложении, работающем в Azure.Мое локальное приложение, работающее с тем же кодом, не имеет проблемы.Я не помню, чтобы у меня была эта проблема, когда я использовал базу данных sqlite3 на прошлой неделе.
Моя страница администратора показывает список всех пользователей в базе данных.Когда вы нажимаете на одно из их имен, вы попадаете на страницу их учетной записи пользователя, которая отображает информацию в таблице БД для их имени учетной записи.Это правильно отображается локально, но не отображается в веб-приложении Azure.
Вот некоторые фрагменты кода:
rout.py
@app.route("/admin")
@login_required
def admin():
if current_user.isAdmin != True:
abort(403)
else:
users = User.query.order_by(User.username.asc())
return render_template('admin.html', title="Admin Portal", users=users)
admin.html
<div class="col-sm-3">
<a href="{{ url_for('newuser') }}" class="btn btn-outline-info mb-4" role="button">New User</a>
</div>
{% for user in users %}
<div class="col-md-12 links">
<a href="{{ url_for('user', username=user.username) }}">{{ user.username }}</a>
</div>
{% endfor %}
rout.py
@app.route("/user/<username>")
@login_required
def user(username):
if current_user.isAdmin != True:
abort(403)
else:
user = User.query.filter_by(username=username).first()
return render_template('user.html', user=user)
user.html
<div class="col-md-6">
<div class="mb-3">
<h2>Name</h2>
<a>{{ user.username }}</a>
</div>
<div class="mb-3">
<h2>Email</h2>
<a>{{ user.email }}</a>
</div>
<div class="mb-3">
<h2>Admin</h2>
<a>{{ user.isAdmin }}</a>
</div>
</div>
Результаты Azure - https://ibb.co/wdmdWrc Локальные результаты - https://ibb.co/hdTjwbJ
Когда я нажимаю кнопку Обновить пользователя, здесь отображаются результаты в результатах URL Azure - https://ibb.co/mFK9Ts8 Локальные результаты - https://ibb.co/YWKRtvV
И снова, и локальная, и версия Azure приложения подключены к одной и той же базе данных Postgresql, размещенной в Azure.Я в недоумении, почему это может происходить?
Любое понимание было бы замечательно.
Я заметил, что на моей локальной машине установлен python 3.7.1, а в Azure - 3.6.4.4.Azure не может обновиться до более новой версии.Я установил 3.6.4 на другой компьютер, установил все зависимости и запустил приложение, и оно все нормально загружает ... Я в недоумении.Я говорил с некоторыми разработчиками на моей работе (если они не используют Python), и они тоже не уверены.Мне бы очень хотелось помочь здесь.