Создание простой формы с помощью django и поиск в базе данных SQL

Я пытаюсь создать форму, которая позволит пользователям осуществлять поиск в базе данных. Предполагаемый язык - django. Я создал базу данных бэкенда для простой схемы студента, и в конечном итоге у меня будет хранимая процедура, которая принимает различные параметры, если любой из параметров указан, то будет выполнен поиск в базе данных и возвращены результаты. Для целей этого упражнения для поиска будет достаточно и простой таблицы.

Я немного почитал и смог придумать следующее, однако это кажется бревенчатым путем от того, чего я пытаюсь достичь, ниже показан прототип того, чего я пытаюсь достичь. В качестве базы данных используется SQL сервер, я настроил базу данных с помощью django и создал таблицу/таблицы.

Я также хотел бы понять, как работать с таблицами стилей, чтобы создавать красивые, но простые страницы.

enter image description here

В моем файле views.py. Вот что у меня есть.

from django.shortcuts import render
from reporting_project.models import sqldbconnection
import pyodbc



def connsql(request):
    conn=pyodbc.connect('Driver={sql server};'
    'server=localhost\DEV2;'
    'Database=django_reporting;'
    'Trusted_connection=yes;')

    cursor = conn.cursor()
    cursor.execute("select student_id, firstname, lastname, fullname, gender , enrollment_date from tbl_students")
    result = cursor.fetchall()
    return render(request, 'index.html',{'sqldbconnection':result})
    
    if 'searchfield' in request.GET:
       searchfield=request.GET['searchfield']
       post=Post.objects.filter(student_search=searchfield)
    else:
        posts=Post.objects.all()

Для urls.py

from django.contrib import admin
from django.urls import path
from . import views

urlpatterns = [
    path('admin/', admin.site.urls),
    path('',views.connsql)
]

models.py

from django.db import models

class sqldbconnection(models.Model):
    firstname = models.CharField(max_length=200)
    lastname = models.CharField(max_length=200)
    fullname = models.CharField(max_length=400)
    gender = models.CharField(max_length=1)
    enrollment_date = models.DateField()

под template\index.html

<!DOCTYPE html>
<head>
<p>
<div class="jumbotron barber shadow">
<div class="row">
<div class="col-md-8 offset-2">
<form>
    <div class="input-group">
    <input name ="search_field" type = "text" placeholder ="search"
    <class="form-control form-control-lg"/>
    <div class="iniput-group-append">
    <button class="btn btn-dark btn-lg"> Search </button>
    </div>
    </div>
    </form>
    </div>
    </div>
    </div>
</p>
<title> Database Connection </title>
<body><centre>
<h1> Student Report</h1>
<table border="1">
<tr>
<th>student_id</th>
<th>firstname</th>
<th>lastname</th>
<th>fullname</th>
<th>gender</th>
<th>enrollment_date</th>
</tr>
{%for datadisplay in sqldbconnection%}
<tr>
<td>{{datadisplay.student_id}}</td>
<td>{{datadisplay.firstname}}</td>
<td>{{datadisplay.lastname}}</td>
<td>{{datadisplay.fullname}}</td>
<td>{{datadisplay.gender}}</td>
<td>{{datadisplay.enrollment_date}}</td>
</tr>
{% endfor %}
</table>
</centre>
</body>
</head>

Создайте таблицы в базе данных.

create table tbl_students
(
student_id int identity(1,1),
firstname varchar(200),
lastname varchar(200),
fullname as firstname +  ' ' + lastname,
gender char(1),
enrollment_date datetime
)


insert into tbl_students (firstname,lastname,gender,enrollment_date)
select 'Sean','Smith','M','12/02/2019'
union all
select 'Dean','Yate','M','01/02/2020'
union all
select 'Dina','Bright','F','11/06/2018'
union all
select 'Florence','Styles','F','10/07/2021'
union all
select 'Mike','Dean','M','09/09/2019'

Вот что у меня есть на данный момент, но поиск не работает.

enter image description here

Вернуться на верх