jzxxzjrowrord
@jzxxzjrowrord (jzxxzjrowrord)

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

flaskでデータベースが作れません

解決したいこと

データベースを作りたい

flaskでwebアプリを作りたいのですがエラーがでて困っています
you tubeを参考に簡単なwebアプリを勉強中なのですが同じことをしていますができません
htmlコードを記述してローカルサーバーにて起動はできたのですが、次の段階のデータベースの作成がつまづいています
sqlalchemyをインストールして使っています
動画ではpython対話モードにてfrom hello(パイソンモジュール名) import dbと記述してdb.create_all()を実行するとデータベースファイルが作成されるみたいですがfrom hello import dbの段階でエラーがでてできません

分かる方教えてください

発生している問題・エラー

11: SAWarning: Can't validate argument 'primary_keY'; can't locate any SQLAlchemy dialect named 'primary'

 id = db.Column(db.Integer, primary_keY=True)

raise sa_exc.ArgumentError(sqlalchemy.exc.ArgumentError: Mapper Mapper[Post(post)] could not assemble any primary key columns for mapped table 'post'

該当するソースコード

hello.py
from flask import Flask
from flask import render_template
from flask_sqlalchemy import SQLAlchemy

app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///todo.db'
db = SQLAlchemy(app)


class Post(db.Model):
    id = db.Column(db.Integer, primary_keY=True)
    title = db.Column(db.String(30), nullable=False)
    detail = db.Column(db.String(100))
    due = db.Column(db.DateTime, nullable=False)


@app.route("/")
def hello_world():
    return render_template("hello.html")

index.html
{% extends 'base.html' %}
{% block content %}
<h1>todo</h1>
<article>
    <h2>記事1</h2>
    <p>作成日時:2021/9/1</p>
    <p>こちらは記事1です</p>
</article>
<article>
    <h2>記事2</h2>
    <p>作成日時:2021/9/3</p>
    <p>こちらは記事2です</p>
</article>
{% endblock %}
base.html
<!DOCTYPE html>
<html lang="ja">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    {% block content %}
    {% endblock %}
</body>

</html>

自分で試したこと

上記エラーコードから調べてみたのですが何が悪くて次どうすべきか全くわかりません

0

1Answer

class Post(db.Model):
    id = db.Column(db.Integer, primary_keY=True)

オプションが primary_keY となっていますが、動作コード中のYも大文字ですか?

0Like

Your answer might help someone💌