No module named 'pymysql' FLASK в то время, когда он есть

249
23 марта 2018, 10:31

Уже не знаю сколько разбираюсь с этой проблемой... Установлен и mysqlclient и pymysql, но все равно выдает ошибку В терминале ввожу команды from database import db db.create_all()

database.py

from flask import Flask
from flask_sqlalchemy import SQLAlchemy
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql+pymysql://sql2227827:aK5%rU9!@sql2.freemysqlhosting.net/aK5%rU9!'
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
db = SQLAlchemy(app)
class Comments(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(32))

@app.route('/')
def hello_world():
    return 'Hello World!'

if __name__ == '__main__':
    app.run()

Ошибка:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Users\Asus\AppData\Local\Programs\Python\Python36-32\lib\site-packages\flask_sqlalchemy\__init__.py", line 963, in create_all
    self._execute_for_all_tables(app, bind, 'create_all')
  File "C:\Users\Asus\AppData\Local\Programs\Python\Python36-32\lib\site-packages\flask_sqlalchemy\__init__.py", line 955, in _execute_for_all_tables
    op(bind=self.get_engine(app, bind), **extra)
  File "C:\Users\Asus\AppData\Local\Programs\Python\Python36-32\lib\site-packages\flask_sqlalchemy\__init__.py", line 896, in get_engine
    return connector.get_engine()
  File "C:\Users\Asus\AppData\Local\Programs\Python\Python36-32\lib\site-packages\flask_sqlalchemy\__init__.py", line 559, in get_engine
    self._engine = rv = sqlalchemy.create_engine(info, **options)
  File "C:\Users\Asus\AppData\Local\Programs\Python\Python36-32\lib\site-packages\sqlalchemy\engine\__init__.py", line 424, in create_engine
    return strategy.create(*args, **kwargs)
  File "C:\Users\Asus\AppData\Local\Programs\Python\Python36-32\lib\site-packages\sqlalchemy\engine\strategies.py", line 81, in create
    dbapi = dialect_cls.dbapi(**dbapi_args)
  File "C:\Users\Asus\AppData\Local\Programs\Python\Python36-32\lib\site-packages\sqlalchemy\dialects\mysql\pymysql.py", line 62, in dbapi
    return __import__('pymysql')
ModuleNotFoundError: No module named 'pymysql'

Answer 1

Помогло добавить pymysql. PS. Работаю в PyCharm

import pymysql
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
pymysql.install_as_MySQLdb()
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql://sql2227827:aK5%rU9!@sql2.freemysqlhosting.net/sql2227827'
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
db = SQLAlchemy(app)

class User(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    email = db.Column(db.String(120), index=True, unique=True)
    password_hash = db.Column(db.String(128))

@app.route('/')
def hello_world():
    return 'Hello World!'
def add_user():
    user = User(email='vokler98@gmail.com', password_hash='82911493p')
    db.session.add(user)
    db.session.commit()

if __name__ == '__main__':
    db.create_all()
    add_user()
READ ALSO
Bad Gateway (502.3) из-за TagHelper&#39;а

Bad Gateway (502.3) из-за TagHelper'а

Есть простой метод (экшен) в контроллере:

261
Как превратить координаты Min0, Min1, Max0, Max1 в Rectangle?

Как превратить координаты Min0, Min1, Max0, Max1 в Rectangle?

Есть координаты прямоугольника на экране: Min0, Min1, Max0, Max1Их нужно превратить в

243
C# Отправка xml через POST

C# Отправка xml через POST

Добрый день! Пытаюсь отправить методом POST xml-файл (в УТМ ЕГАИС)В ответ сервер выдает ошибку Error 500 Server Error HTTP ERROR 500 Problem accessing /opt/in/QueryRests_v2

281
Что конкретно делает метод Thread.SpinWait?

Что конкретно делает метод Thread.SpinWait?

Из документации откровенно говоря ничего непонятно, все очень сумбурноЧто именно делает этот метод?

243