如何接收来自HTML的请求并在我的视图和模型sid上处理它

2024-05-15 21:44:43 发布

您现在位置:Python中文网/ 问答频道 /正文

我是新来的软件开发人员,请安静。 我试图从我的html代码接收一个请求并获取shift代码值,它可以是Shift1、Shift2或Shift3。你知道吗

我使用的是只读oracledb,这就是我使用raw query的原因。 基本上,我想用html代码过滤我的表结果,通过“Shift”结果根据用户选择,现在我显示的是所有Shift结果,如何过滤呢?你知道吗

请告诉我怎么在我的电脑上做视图.py以及型号.py你知道吗

Html代码:

<div id="page-content-wrapper">

        <div class="container-fluid">
            <a href="#menu-toggle" class="btn btn-secondary" id="menu-toggle"><< Menu</a>
            <h4 align="right" >{{ date|date:'Y-m-d H:i' }} </h4>

            <h1>SMD/PBA System Management</h1>              

                <div class="container-fluid">


                Select the shift
               <form action="{ %url 'show_list' %}" method="post">
                  <div class="form-row align-items-center">
                    <div class="col-auto my-1">

                      <select class="custom-select mr-sm-2" id="inlineFormCustomSelect" name="shift">
                        <option selected>Shift 1</option>
                        <option value="1">Shift 1</option>
                        <option value="2">Shift 2</option>
                        <option value="3">Shift 3</option>
                        <option value="ALL">ALL</option>
                      </select>
                     </div>
                    <button type="submit" value="Submit" class="btn btn-info">Search</button>
                   </div>
                </form>

                <br>


                <h4>Retest IM</h4>
                    <table align="left" border="2" class="table table-dark">
                     <tr bgcolor="#0080ff">
                        <td align="center">Date</td>
                        <td align="center">Shift</td>
                        <td align="center">Line</td>
                        <td align="center">Model</td>
                        <td align="center">Insp QTY</td>
                        <td align="center">Retest QTY</td>
                        <td align="center">Index PPM</td>

                        {% for instance in query %}
                                {% if instance.DEF_INDEX_PPM > 5000 %}
                                <tr bgcolor="#ff4d4d">
                                {% else %}
                                <tr>
                                {% endif %}
                                    <td align="center">{{ instance.WORK_YMD }} </td>
                                    <td align="center">{{ instance.SHIFT_CODE }} </td>
                                    <td align="center">{{ instance.LINE_NM }} </td>
                                    <td align="center">{{ instance.MODEL_NM }} </td>
                                    <td align="center">{{ instance.SMD_INSP_QTY }} </td>
                                    <td align="center">{{ instance.SMD_RETEST_DEFT_QTY }} </td>
                                    <td align="center">{{ instance.DEF_INDEX_PPM|floatformat:0 }} </td>
                                </tr>

                        {% endfor %}


                     </tr>
                </table>
                <h4>Retest CE</h4>
                <table align="left" border="2" class="table table-dark">
                     <tr bgcolor="#0080ff">
                        <td align="center">Date</td>
                        <td align="center">Shift</td>
                        <td align="center">Line</td>
                        <td align="center">Model</td>
                        <td align="center">Insp QTY</td>
                        <td align="center">Retest QTY</td>
                        <td align="center">Index PPM</td>>


                        {% for instance in query2 %}
                               {% if instance.DEF_INDEX_PPM > 5000 %}
                                <tr bgcolor="#ff4d4d">
                                {% else %}
                                <tr>
                                {% endif %}
                                     <td align="center">{{ instance.WORK_YMD }} </td>
                                     <td align="center">{{ instance.SHIFT_CODE }} </td>
                                     <td align="center">{{ instance.LINE_NM }} </td>
                                     <td align="center">{{ instance.MODEL_NM }} </td>
                                     <td align="center">{{ instance.PBA_INSP_QTY }} </td>
                                     <td align="center">{{ instance.PBA_RETEST_DEFT_QTY }} </td>
                                     <td align="center">{{ instance.DEF_INDEX_PPM|floatformat:0 }} </td>

                                </tr>

                        {% endfor %}
                     </tr>
                </table>

                </div>



        </div>

    </div>
    <!-- /#page-content-wrapper -->

你知道吗视图.py代码:

from datetime import datetime

from django.http import HttpResponse
from django.shortcuts import render
from django.template import loader

from .models import my_custom_sql2


# Create your views here.
def show_list(request):

    query2 = my_custom_sql2(self='my_custom_sql2')

    myDate = datetime.now()

    return render(request, 'monitoring.html', {'query2': query2, 'date': myDate})

你知道吗型号.py代码:

from django.db import models
from django.db import connection


# Create your models here.
def dictfetchall(cursor):
"Returns all rows from a cursor as a dict"
desc = cursor.description
return [
        dict(zip([col[0] for col in desc], row))
        for row in cursor.fetchall()
]




def my_custom_sql2(self):
with connection.cursor()as cursor:
import time
date = time.strftime('%Y%m%d')

            cursor.execute("""
                   select  A.WORK_YMD,
                           A.SHIFT_CODE,
                           --A.LINE_CODE,
                           B.LINE_NM,
                           A.MODEL_NM,
                           A.PBA_INSP_QTY,                          
                           A.PBA_RETEST_DEFT_QTY,                           
                          (A.PBA_RETEST_DEFT_QTY / A.PBA_INSP_QTY * 1000000) 
AS DEF_INDEX_PPM

                    from TBS_QM_TOTAL_PROC_DEFT A, TBM_MD_LINE B  

                    where  
                           A.WORK_YMD = %s  
                           AND A.LINE_CODE = B.LINE_CODE                                  
                           AND A.PBA_INSP_QTY > 0 
                           --AND A.SHIFT_CODE                            
                          ORDER BY DEF_INDEX_PPM DESC, B.LINE_NM ASC
                    """, [date])
    row = dictfetchall(cursor)

    cursor.close()
    return row

你知道吗网址.py你知道吗

from django.urls import path
from .views import show_list


urlpatterns = [
path('list/', show_list, name="show_list"),
]

[Html屏幕:1


Tags: instancefromimportdivshifttablecursortr