Я пытался создать приложение с Flask на PyCharm, но я получаю эту ошибку. Проведя некоторые исследования, я обнаружил, что некоторые люди говорят, что мне нужно исправить PATH, но я не знаю, как это исправить.
Вот код и вывод, который я получаю:
import re
import MySQLdb.cursors
import mysql.connector
from flask import Flask, render_template, request, redirect, url_for, session
from flask_mysqldb import MySQL
app = Flask(__name__)
app.secret_key = 'hotdog'
app.config['MYSQL_HOST'] = '<SOME_HOST>'
app.config['MYSQL_USER'] = '<SOME_USER>'
app.config['MYSQL_PASSWORD'] = '<SOME_PASSWORD>'
app.config['MYSQL_DB'] = '<SOME_DATABASE>'
mysql = MySQL(app)
@app.route('/', methods=['GET', 'POST'])
def login():
msg = ''
if request.method == 'POST' and 'username' in request.form and 'password' in request.form:
username = request.form['username']
password = request.form['password']
cursor = mysql.connection.cursor(MySQLdb.cursors.DictCursor)
cursor.execute('SELECT * FROM accounts WHERE username = %s AND password = %s', (username, password,))
account = cursor.fetchone()
session['loggedin'] = True
session['id'] = account['id']
session['username'] = account['username']
return render_template('home.html', msg=msg)
else:
msg = 'Incorrect username/password!'
return render_template('index.html', msg=msg)
@app.route('/logout')
def logout():
session.pop('loggedin', None)
session.pop('id', None)
session.pop('username', None)
return redirect(url_for('login'))
@app.route('/home')
def home():
if 'loggedin' in session:
return render_template('home.html', username=session['username'])
return redirect(url_for('login'))
@app.route('/profile')
def profile():
if 'loggedin' in session:
cursor = mysql.connection.cursor(MySQLdb.cursors.DictCursor)
cursor.execute('SELECT * FROM accounts WHERE id = %s', (session['id'],))
account = cursor.fetchone()
return render_template('profile.html', account=account)
return redirect(url_for('login'))
if __name__ == '__main__':
app.run()
Выход:
FLASK_APP = app.py
FLASK_ENV = development
FLASK_DEBUG = 0
In folder /Users/parth/Desktop/School/Comp/3380_Database/team_16
/Users/parth/Desktop/School/Comp/3380_Database/team_16/venv/bin/python -m flask run
* Serving Flask app "app.py"
* Environment: development
* Debug mode: off Usage: python -m flask run [OPTIONS]
Error: While importing "app", an ImportError was raised:
Traceback (most recent call last):
File "/Users/parth/Desktop/School/Comp/3380_Database/team_16/venv/lib/python3.7/site-packages/flask/cli.py", line 240, in locate_app
__import__(module_name) File "/Users/parth/Desktop/School/Comp/3380_Database/team_16/app.py", line 2, in <module>
import MySQLdb.cursors File "/Users/parth/Desktop/School/Comp/3380_Database/team_16/venv/lib/python3.7/site-packages/MySQLdb/__init__.py",line 18, in <module>
from . import _mysql ImportError:
ImportError: dlopen(/Users/parth/Desktop/School/Comp/3380_Database/team_16/venv/lib/python3.7/site-packages/MySQLdb/_mysql.cpython-37m-darwin.so, 2): Library not loaded: libmysqlclient.18.dylib Referenced from: /Users/parth/Desktop/School/Comp/3380_Database/team_16/venv/lib/python3.7/site-packages/MySQLdb/_mysql.cpython-37m-darwin.so Reason: image not found