実現したいこと
info.htmlのテキストボックスに入った値をviews.pyに渡してデータベースに登録したいのですがパスのエラー?でinfo.htmlが開けません。
色々ググりましたが、viewsからhtmlへの情報は多いのですが、逆はあまり情報がなく行き詰まりました。
お助けいただけたら幸いです。
※不要なファイルが多くてすみません…
ご回答いただいた後のイメージ
発生している問題・エラーメッセージ
NoReverseMatch at /info Reverse for 'views.py' not found. 'views.py' is not a valid view function or pattern name.
該当のソースコード
html
1<form action="{% url 'views.py' %}" method="post"> 2 {% csrf_token %} 3 <div class="field"> 4 <input type="text" id="IDcol" name="IDcolName" class="IDcolName" /> 5 </div> 6 <input type="submit" value="送信"> 7 </form>
views.py
1def get_id(request): 2 if request.method =="POST": 3 attId = request.POST['IDcolName'] 4 print(attId) 5 template_name = "backend/info.html" 6 params = { 7 "attendId": attId, 8 } 9 return render(request, 'info.html',params)
urls.py
1from django.urls import path 2from django.conf.urls import url 3from backend import views 4from . import views 5 6app_name = 'backend' 7urlpatterns = [ 8path('info', views.info, name='info'), 9path('', views.get_id, name='info'), 10 11 12]
views.py(修正後)
1def get_id(request): 2 if request.method =="POST": 3 attId = request.POST['IDcolName'] 4 # データベースに接続します 5 conn_str = ( 6 r'DRIVER={Microsoft Access Driver (*.mdb, *.accdb)};' 7 r'DBQ=C:\Users\〇〇\Desktop\sougoudb.accdb;' 8 ) 9 conn = pyodbc.connect(conn_str) 10 11 curs = conn.cursor() 12 13 curs.execute("INSERT INTO 英語(顧客ID) VALUES ('1')") 14 params = { 15 "attendId": attId, 16 } 17 return render(request, 'backend/get_id.html', {'params': params})
views.py(access接続)
1def info(request): 2 3 request.method == 'POST' 4 userid = request.POST['koushaId'] 5 kshaname = request.POST['koushaName'] 6 7 # データベースに接続します 8 conn_str = ( 9 r'DRIVER={Microsoft Access Driver (*.mdb, *.accdb)};' 10 r'DBQ=C:\Users\〇〇\Desktop\sougoudb.accdb;' 11 ) 12 conn = pyodbc.connect(conn_str) 13 14 curs = conn.cursor() 15 gakunen = conn.cursor() 16 kokyaku = conn.cursor() 17 18 curs.execute("SELECT クラスweb,クラス名 FROM クラステーブル WHERE 無効フラグ = false") 19 docs = curs.fetchall() 20 21 gakunen.execute("SELECT 学年ID,学年名 FROM 学年名テーブル") 22 gkn = gakunen.fetchall() 23 24 25 kokyaku.execute("SELECT * FROM 基本情報 WHERE kshaID = \'%s\'" % userid) 26 kj = kokyaku.fetchall() 27 28 context = { 29 30 'ksha':kshaname, 31 'id':userid, 32 'doc':docs, 33 'gakunen':gkn, 34 'kokyaku':kj, 35 } 36 return render(request, 'backend/info.html',context)
試したこと
info.htmlのaction部分を見様見真似で「backend:views」「templates/views.py」「backend/templates/views」などしてみましたがダメでした。
もしかしたら実現したいことと手法が違うのではないかとも思っています。
より良い方法などありましたら併せて教えて頂けたら嬉しいです。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/04/04 05:33
2022/04/04 05:44
2022/04/04 08:55
2022/04/04 11:20
2022/04/05 02:48
2022/04/05 04:27
2022/04/05 06:41
2022/04/05 13:42 編集
2022/04/06 01:06
2022/04/06 11:19