1. 程式人生 > 實用技巧 >開發工具-Django 根據輸入mid 刪除資料庫中對應的記錄

開發工具-Django 根據輸入mid 刪除資料庫中對應的記錄

開發工具-Django 根據輸入mid 刪除資料庫中對應的記錄

#需求:
1.產品需要在頁面輸入 違禁詞url 中的 mid,相應刪除資料庫中對應的記錄

# 環境
django-1.11.6
python 2.7

#新建立應用 oprateor

#修改 settings.py 
INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'oprateor'
]
TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [os.path.join(BASE_DIR, "templates"),],
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
            ],
        },
    },
]

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'blog',
        'HOST': '127.0.0.1',
        'PORT': '3306',
        'USER': 'root',
        'PASSWORD': '899999'
    }
}

# 修改 oprateor/__init__.py
#coding=utf-8

import pymysql
from django.apps import AppConfig
import os

#資料庫使用
pymysql.version_info = (1, 4, 13, "final", 0)
pymysql.install_as_MySQLdb()


#增加資料模型 models.py

# -*- coding: utf-8 -*-
from __future__ import unicode_literals

from django.db import models

# Create your models here.


class dkp(models.Model):
    dkpname = models.CharField(max_length=30,unique=True)

    def __unicode__(self):
        return u'Tag:%s'%self.dkpname


#修改路由
urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^dkp/',include('oprateor.urls')),
]

#修改子路由
#conding=utf-8
from django.conf.urls import url
import views

urlpatterns = [
    url(r'^operator/$',views.queryAll),
]


# 修改 views.py
# -*- coding: utf-8 -*-
from __future__ import unicode_literals

from django.http import HttpResponse
from django.shortcuts import render
from .models import *

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

    if request.method == 'GET':
        return render(request,'index.html')
    else:
        #從前端獲取輸入頁面的 mid
        mid = request.POST.get('mid')
        #轉化為 int 型別
        mid = int(mid)
        print type(mid)
           
        #操作資料庫
        from django.db import connection

        cursor = connection.cursor()
        #刪除操作
        oprate = cursor.execute("delete from  oprateor_dkp where id=%s" %mid)

        print mid
        #判斷是否操作成功
        if oprate:
            return HttpResponse('已刪除提交的 mid 為 %s' %mid)
        else:
            return HttpResponse('無法刪除提交的 mid 為 %s' % mid)


#新增加 templates/index.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<form action="/dkp/operator/" method="post">
    {% csrf_token %}
        <p>mid:<input type="number" name="mid"/></p>
        <p><input type="submit" value="operating"/></p>
</form>
</body>
</html>


#實現效果輸入:http://127.0.0.1:8000/dkp/operator/