django:以表名作为用户输入,显示数据库表的内-问答-阿里云开发者社区-阿里云

开发者社区> kun坤> 正文

django:以表名作为用户输入,显示数据库表的内

2019-12-25 21:39:48 194 1

我尝试在django中实现form,我将从用户e处获取输入。g,它的表名然后我想展示网页上的所有内容。所以,到目前为止,我尝试了以下代码。 views.py

from django.shortcuts import render

# Create your views here.
from django.shortcuts import HttpResponse
from .models import my_custom_sql
from django.core.exceptions import *

def index(request):
    return render(request, 'forms_spy/form.html')

def search(request):
    if request.method == 'POST':
        search_id = request.POST.get('textfield', None)
        try:
           webpages_list = my_custom_sql.objects.get(name = search_id)
           data_list = {'access_record':webpages_list}
           return render(request,'forms_spy/index.html', context=data_list)
        except my_custom_sql.DoesNotExist:
            return HttpResponse("no such user")
    else:
        return render(request, 'forms_spy/form.html')

forms_spy / models.py

from django.db import models

# Create your models here.
def my_custom_sql(TABLE):
    with connections["my_oracle"].cursor() as cursor:
        cursor.execute("SELECT * FROM {};".format(TABLE))
        row = cursor.fetchall()

        return row

模板/ forms_spy / form.html

<form method="POST" action="/search">
{% csrf_token %}
<input type="text" name="textfield">

<button type="submit">Upload text</button>
</form>

项目文件夹下的url .py:

from django.contrib import admin
from django.urls import path
from django.conf.urls import url,include
from forms_spy.views import *

urlpatterns = [
    # url(r'^$', views.index, name='index'),
    #url(r'^', include('livefleet.urls', namespace='livefleet')),
    path('admin/', admin.site.urls),
    url(r'^search/', search),
    url(r'^index/', index),
]

我参考了这个链接。当我输入的值低于错误。

RuntimeError at /search

You called this URL via POST, but the URL doesn't end in a slash and you have APPEND_SLASH set. Django can't redirect to the slash URL while maintaining POST data. Change your form to point to 127.0.0.1:8000/search/ (note the trailing slash), or set APPEND_SLASH=False in your Django settings.

问题来源StackOverflow 地址:/questions/59387206/django-take-table-name-as-input-from-user-and-show-the-content-of-the-table-fro

取消 提交回答
全部回答(1)
  • kun坤
    2019-12-25 21:39:55

    改变urls . py 从

    url(r'^search/', search),
    

    url(r'^search/', search, name='search'),
    
    
    
    <form method="POST" action="{% url 'search' %}">
    {% csrf_token %}
    <input type="text" name="textfield">
    
    <button type="submit">Upload text</button>
    </form>
    

    你的网址是搜索/,所以你需要把相同的形式行动

    0 0
相关问答

17

回答

【大咖问答】对话PostgreSQL 中国社区发起人之一,阿里云数据库高级专家 德哥

阿里ACE 彭飞 2019-07-10 09:36:10 975998浏览量 回答数 17

145

回答

【新手入门】云服务器linux使用手册

fanyue88888 2012-11-26 17:14:18 157142浏览量 回答数 145

8

回答

OceanBase 使用动画(持续更新)

mq4096 2019-02-20 17:16:36 333959浏览量 回答数 8

22

回答

爬虫数据管理【问答合集】

我是管理员 2018-08-10 16:37:41 146824浏览量 回答数 22

2

回答

mySQL数据库报错You have an error in your SQL syntax

落地花开啦 2016-02-14 16:09:24 126957浏览量 回答数 2

42

回答

【精品问答集锦】Python热门问题

小六码奴 2019-05-30 15:27:34 135646浏览量 回答数 42

38

回答

安全组详解,新手必看教程

我的中国 2017-11-30 15:23:46 256928浏览量 回答数 38

21

回答

请教一下数据量有100万条左右要什么配置?

易网网络 2013-03-27 15:18:02 192375浏览量 回答数 21

249

回答

阿里云LNAMP(Linux + Nginx + Apache + MySQL + PHP)环境一键安装脚本

云代维 2014-02-14 15:26:06 302664浏览量 回答数 249

24

回答

【精品问答】python技术1000问(1)

问问小秘 2019-11-15 13:25:00 471635浏览量 回答数 24
+关注
0
文章
13401
问答
相关电子书
更多
文娱运维技术
立即下载
《SaaS模式云原生数据仓库应用场景实践》
立即下载
《看见新力量:二》电子书
立即下载