質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Flask

FlaskはPython用のマイクロフレームワークであり、Werkzeug・Jinja 2・good intentionsをベースにしています。

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

解決済

1回答

2488閲覧

チェックボックス がDBに繋がらない(flask,sql,html)

Shmupeiii

総合スコア105

Flask

FlaskはPython用のマイクロフレームワークであり、Werkzeug・Jinja 2・good intentionsをベースにしています。

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

0クリップ

投稿2020/03/03 13:09

編集2020/03/04 03:11

コード
今サイトを制作していて、
下記のコードは
condition checkbox kazi BABY pet に
それぞれチェックボックス を入れて(kazi BABY petは複数選択可能)
その選んだチェックボックス を
SQL(DB)に入れるということをしたいです。

しかしこの状態でやると

sqlite3.OperationalError
sqlite3.OperationalError: near ".": syntax error

Traceback (most recent call last)
File "C:\Users\tsaru\AppData\Local\Programs\Python\Python37\lib\site-packages\flask\app.py", line 2463, in call
return self.wsgi_app(environ, start_response)
File "C:\Users\tsaru\AppData\Local\Programs\Python\Python37\lib\site-packages\flask\app.py", line 2449, in wsgi_app
response = self.handle_exception(e)
File "C:\Users\tsaru\AppData\Local\Programs\Python\Python37\lib\site-packages\flask\app.py", line 1866, in handle_exception
reraise(exc_type, exc_value, tb)
File "C:\Users\tsaru\AppData\Local\Programs\Python\Python37\lib\site-packages\flask_compat.py", line 39, in reraise
raise value
File "C:\Users\tsaru\AppData\Local\Programs\Python\Python37\lib\site-packages\flask\app.py", line 2446, in wsgi_app
response = self.full_dispatch_request()
File "C:\Users\tsaru\AppData\Local\Programs\Python\Python37\lib\site-packages\flask\app.py", line 1951, in full_dispatch_request
rv = self.handle_user_exception(e)
File "C:\Users\tsaru\AppData\Local\Programs\Python\Python37\lib\site-packages\flask\app.py", line 1820, in handle_user_exception
reraise(exc_type, exc_value, tb)
File "C:\Users\tsaru\AppData\Local\Programs\Python\Python37\lib\site-packages\flask_compat.py", line 39, in reraise
raise value
File "C:\Users\tsaru\AppData\Local\Programs\Python\Python37\lib\site-packages\flask\app.py", line 1949, in full_dispatch_request
rv = self.dispatch_request()
File "C:\Users\tsaru\AppData\Local\Programs\Python\Python37\lib\site-packages\flask\app.py", line 1935, in dispatch_request
return self.view_functionsrule.endpoint
File "C:\Users\tsaru\Desktop\omoiyari.new\app.py", line 31, in add
(condition, checkbox, kazi, BABY, pet, makedinner))
sqlite3.OperationalError: near ".": syntax error

とエラーが出ました。
どうしたらチェックボックス にデータを入れれるでしょうか
よろしくお願いします。

SQL

名前 select_checkbox カラム名 id condition checkbox kazi BABY pet makedinner
の順で配置

HTML

1<form action="/add" method="POST"> 2 3 <input type="checkbox" name="condition" value="tired">疲れている 4 <input type="checkbox" name="condition" value="sleep">寝不足 5 <input type="checkbox" name="condition" value="poor">体調不良 6 7 8 <p>ご飯はどうしますか?</p> 9 10 <input type="checkbox" name="checkbox" value="morning">朝 11 <input type="checkbox" name="checkbox" value="lunch">昼 12 <input type="checkbox" name="checkbox" value="night">夜 13 <input type="checkbox" name="checkbox" value="lunch_box">お弁当 14 <!--<p>使ってほしい食材ありますか?</p> 15 <form action="checkbox.html" method="POST"> 16 <input name="food"/> 17 <input type="text" name="food" placeholder="コメント入力"> 18 <br>--> 19 20 <p>家事リスト(複数選択可)</p> 21 22 <select name="kazi" id="" multiple> 23 <option value="1">皿洗い</option> 24 <option value="2">お皿をしまう</option> 25 <option value="3">洗濯物を洗う</option> 26 <option value="4">洗濯物を干す</option> 27 <option value="5">アイロンがけ</option> 28 <option value="6">服を畳む</option> 29 <option value="7">服を収納する</option> 30 <option value="8">部屋掃除</option> 31 <option value="9">お風呂掃除</option> 32 <option value="10">トイレ掃除</option> 33 <option value="11">ゴミを集める</option> 34 <option value="12">ゴミ捨て</option> 35 36 37 </select> 38 39 <p>赤ちゃんリスト(複数選択可)</p> 40 41 <select name="BABY" id="" multiple> 42 <option value="1">おむつ替え</option> 43 <option value="2">ミルク</option> 44 <option value="3">哺乳瓶の消毒</option> 45 <option value="4">子供のご飯作り</option> 46 <option value="5">ご飯を食べさせる</option> 47 <option value="6">お風呂</option> 48 <option value="7">着替え</option> 49 <option value="8">泣いたらあやす</option> 50 <option value="9">寝かし付け</option> 51 <option value="10">一緒に遊ぶ(室内)</option> 52 <option value="11">一緒にお出かけ</option> 53 <option value="12">保育園の送り迎え</option> 54 <option value="13">病院に連れて行く</option> 55 56 57 </select> 58 <p>ペットリスト(複数選択可)</p> 59 60 <select name="pet" id="" multiple> 61 <option value="1">ペットの散歩</option> 62 <option value="2">ペットのご飯</option> 63 <option value="3">ペットと室内で遊ぶ</option> 64 <option value="4">ペットのトイレ掃除</option> 65 <option value="5">ペットの病院</option> 66 67 68 </select> 69 <div> 70 <input type="submit" value="送信"> 71 72 73 </div> 74 </form> 75 </div> 76 </div>

python

1flask 1-5行目 2from email.mime.text import MIMEText 3import ssl 4import smtplib 5import sqlite3 6import random 7from flask import Flask, render_template, request, redirect, session

flask(該当部分)

@app.route('/add', methods=["POST"]) def add(): # roomid = session['roomid'] # フォームから入力されたアイテム名の取得 condition = request.form.get("condition") checkbox = request.form.get("checkbox") kazi = request.form.get("kazi") BABY = request.form.get("BABY") pet = request.form.get("pet") makedinner = request.form.get("makedinner") conn = sqlite3.connect('omoiyari.db') c = conn.cursor() c.execute("insert into bbs values(null,?,?,?,?.?,?)", (condition, checkbox, kazi, BABY, pet, makedinner)) conn.commit() conn.close() return redirect('/bbshome')

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Orlofsky

2020/03/03 13:15

[SQL Server]タグが付いていますが、 コードの >import sqlite3 は合っていますか?
Shmupeiii

2020/03/03 13:18

変更しました。 はいそこは書いた通りに書いてます。
Orlofsky

2020/03/04 03:25

最初に書いたようにエラーメッセージも Markdown を使ってください。
Orlofsky

2020/03/04 03:25

[SQLite]タグを追加してください。
Orlofsky

2020/03/04 03:26

質問に CREATE TABLE も Markdown で追記してください。
guest

回答1

0

ベストアンサー

一応現象が再現したので、たぶんここというのを指摘します。

以下の部分が「.」です。

python

1 c.execute("insert into bbs values(null,?,?,?,?.?,?)", 2 ^

元のままだとエラーの理由ががわからなかったので、以下の通り変更して実行したところデータが入りました。(create tableは別途しています)
たぶん望んだデータではないと思いますが、そこは頑張って作成ください。

python

1 sql = "insert into bbs values(null,?,?,?,?,?,?)" 2 master = (condition, checkbox, kazi, BABY, pet, makedinner) 3 conn.execute(sql, master)

今後は、現象が再現する最小限のコードをコピー&ペーストできる形で提示ください。

例えば、

python

1 return redirect('/bbshome')

というのがありますが、/bbshomeに該当するコードは提供されていません。
また、formのHTMLが提示されていますが呼び出される部分はありませんし、完全なHTMLではないので補完が必要でした。
エラーメッセージもcodeで囲まれていないため非常に見づらいです。

また、Orlofskyさんが指摘していますが、この質問で使われているDBはsqlite3です。
SQL Serverは使われていません。
変更しましたというコメントがついていますが、「SQL Server」タグはそのままです。
今回の質問に回答するのに必要なのはsqlite3に詳しい人です。適切なタグ設定をお願いします。

投稿2020/03/04 02:51

FiroProchainezo

総合スコア2424

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

FiroProchainezo

2020/03/04 04:37

質問が修正されているようなので一応コメント追加しますが、「.」を修正したらそのコードは動作するはずです。 その後はこの質問文にあるエラーは発生しません。 コードを修正して確認し、エラーが出なくなったらこの質問を閉めてください。 改めてわからないことがあったら質問し直してください。この質問をだらだら追記しても訳がわからなくなるだけです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問