我是Django的新手。以下是Django的版本和使用的数据库
Django版本:2.1.15,django pyodbc azure==1.11.90,使用的sql server 2012
django管理员启动项目项
目标:从用户@itemnumber&将该输入提供给
EXEC ValidateBusinessrule '@itemnumber'
,并在html页面中显示结果设置.py连接
DATABASES =
{
'default':
{
'ENGINE': 'sql_server.pyodbc',
'NAME': 'ETP',
'HOST': '10.*.*.*',
'USER': '',
'PASSWORD': '',
'OPTIONS': {
'driver': 'ODBC Driver 13 for SQL Server',
}
}
}
项目。urls:
from django.urls import path
from django.urls import path from . import views
urlpatterns = [path(r'item/', views.itemnumber, name='index'), ]
print("hello1")
UPDATION::::::::::::::::::::::::::::
我是Django的新手,无法将用户输入映射到存储过程查询。
views.py
from django.db import connection
from django.shortcuts import render
from .forms import InputForm
def home_view(request):
print("woooooooooooo",request)
context1 ={}
context1['form']= InputForm()
print("context1::::", context1)
return render(request, "input.html", context1)
def itemnumber(request):
cursor = connection.cursor()
try:
itemnumber = "23241715"
C=cursor.execute(f"EXEC ValidateBusinessrule '0000000000{itemnumber}'")
print("c value",C)
result_set = cursor.fetchall()
print(result_set)
result_set1= [' {} '.format(x) for x in result_set]
print(result_set1)
context = {"row": result_set1}
print("lolllllllllll", context)
return render(request, "home.html", context)
finally:
cursor.close()
print("hello3")
forms.py
from django import forms
import re
# creating a form
class InputForm(forms.Form):
print("inside forms")
regex = re.compile('^([1-9]{8})$', re.UNICODE)
ENTER_ITEM_NUMBER= forms.RegexField(max_length=8, regex=regex,help_text=("Required 8 digits
between {0-9}."))
print("iiiiiiiiiiiiiiiiiiiiiiii",ENTER_ITEM_NUMBER)
#ENTER_ITEM_NUMBER = forms.IntegerField(max_length=8, label='ENTER ITEM NUMBER')
item/urls
from django.urls import path
from django.urls import include, path
#from django.urls import path
from . import views
urlpatterns = [
path('inputs/', views.home_view),
path('item/', views.itemnumber, name='item'),
]
print("hello1")
input.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<form action = "" method = "post">
{% csrf_token %}
{{form }}
<input type="submit" value=Submit">
</form>
</body>
</html>
Home.html
<html>
<style>
body
{
background-color: powderblue;
}
</style>
<body>
<table style="border: 1px solid #b50b32; margin: 30px auto; width: 100px; padding: 0; border-spacing: 10px;" bgcolor="#00FF00" cellspacing="0" cellpadding="10">
<tr>
<ul>
<th>(u,v)</th>
</ul>
</tr>
<tr>
<ul >
{% for row in row %}
<td style= "text-align: center;">
{{ row }}
</td>
</ul>
</tr>
{% endfor %}
</table>
</body>
</html>
我没有使用任何型号。*
(我可以有一个没有模型的Django表单吗(
我很困惑如何将用户输入=ENTER_ITEM_NUMBER提供给定义项目编号(请求(。
这样一切都会好起来吗?
根据给定的代码示例,我假设您的存储过程将字符串作为参数,所以请尝试执行cursor.execute(f"EXEC ValidateBusinessrule '{itemnumber}'")
。
Upd:要将结果列表传递给html模板,请考虑使用从django.shorcuts
导入的render
方法。更多信息在这里