В прошлом месяце я разработал проект django с именем "dms" и приложение с именем "add_excel". Приложение получает файлы Excel с веб-страницы и сохраняет данные в базе данных MySQL. Сегодня я добавил еще два приложения, «add_struc» и «homepage», которые должны быть еще одним приложением функций и приложением домашней страницы. Но появляется что-то странное. После того, как я нажал кнопку «Загрузить» в приложении «add_excel», вместо его оригинальных функций он перенаправляет на «домашнюю страницу», ничего не делая с базой данных.
Код VS показывает:
[18 / Apr / 2019 11:08:00] «GET / HTTP / 1.1» 200 317 # Я открыл
домашняя страница
[18 / Apr / 2019 11:08:02] «GET / addexcel / index / HTTP / 1.1» 200 1341 # Я нажал на гиперссылку приложения «add_excel»
[18 / Apr / 2019 11:08:20] "POST / homepage / index / HTTP / 1.1" 200 317 #
Я нажал «загрузить», но он снова перенаправил меня на домашнюю страницу.
Если я удаляю URL домашней страницы в urls.py для всего проекта и снова нажимаю кнопку загрузки, он говорит:
Страница не найдена (404) Метод запроса: запрос POST
URL: http://127.0.0.1:8000/homepage/index/ Использование определенного URLconf
в dms.urls Джанго попробовал эти шаблоны URL в следующем порядке:
^ admin / ^ $ [name = 'index'] ^ addexcel / ^ addstruc / Текущий путь,
homepage / index /, не соответствует ни одному из них.
Проект urls.py в dms:
from django.contrib import admin
from django.conf.urls import url, include
from homepage.views import index # default homepage
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^$', index, name='index'), # homepage
url(r'^addexcel/', include('add_excel.urls')),
url(r'^addstruc/', include('add_struc.urls')),
]
urls.py в приложении add_excel:
from django.conf.urls import url
from django.urls import path
from django.contrib import admin
from add_excel.views import IndexView
urlpatterns = [
url(r'index/', IndexView.as_view(), name ='index'),
]
urls.py в приложении add_struc:
from django.conf.urls import url
from django.urls import path
from django.contrib import admin
from add_struc.views import IndexView
urlpatterns = [
url(r'index/', IndexView.as_view(), name ='index'),
]
urls.py в приложении домашней страницы:
from django.conf.urls import url
from django.urls import path
from django.contrib import admin
from homepage.views import index
urlpatterns = [
url(r'index/', index, name='index'),
]
views.py в приложении add_excel:
# -*- coding:utf-8 -*-
import os
import os.path
import sys
import datetime
from builtins import int
from django.db import models
from django.shortcuts import render
from django.views import View
import pymysql
import xlrd
from xlrd import xldate_as_tuple
# Create your views here.
class IndexView(View):
template_name = 'add_excel/index.html'
context={}
def get(self, request):
return render(request, 'add_excel/index.html', {})
def post(self, request):
# if request.method == 'POST' and 'excel_file' in request.POST:
if request.method == 'POST' and request.FILES["excel_file"]:
# do something
return render(request, 'add_excel/index.html', {"excel_data":excel_data})