Невозможно отправить данные в базу данных - PullRequest
0 голосов
/ 17 июня 2019

Я пытаюсь создать приложение блога с django. Когда я захожу на localhost, домашняя страница работает, и когда я нажимаю на вкладку регистрации, появляется страница регистрации, и когда я нажимаю на кнопку отправить, она не передает данные в базу данных.Возвращает страницу не найдена ошибка.Метод запроса: POST. Запросить URL:
http://127.0.0.1:8000/blog/register/register.I думаю, что проблема с URL.

HTML-код

{% extends 'layout.html' %}
{% block content %}
<div class="box">
    <h2>
        <center>Register</center>
    </h2><br>
    <form action='register' method='POST'>
        {% csrf_token %}
        <label><b>Email:</b></label><br>
        <input type="email" class="inputvalues" name="email"/><br>
        <label><b>Username:</b></label><br>
        <input type="text" maxlength="100" class="inputvalues" 
                                           name="User_name"/><br>
        <label><b>Password:</b></label><br>
        <input type="password" class="inputvalues" name="Paasword1"/><br>
        <label><b>Confirm Password:</b></label><br>
        <input type="password" class="inputvalues" name="Paasword2"/><br>
        <input type="Submit" id="lg"/><br>
        <center><a href="#" >Already have an account.Login here.</a> 
                                                              </center>
    </form>
</div>
{% endblock %}

код моего основного приложения urls.py

from django.contrib import admin
from django.urls import path,include

urlpatterns = [
 path('blog/',include('blog.urls')),
 path('admin/', admin.site.urls),
]

приложение блога urls.py

from django.urls import path,include
from . import views

urlpatterns=[
    path('',views.homepage),
    path('register/',views.register,name='register'),
    path('login/',views.login),     
]

views.py код страницы регистрации

def register(request):
 if request.method == "POST":
    email=request.POST['email']
    User_name=request.POST['User_name']
    Password1=request.POST['Password1']
    Password2=request.POST['Password2']
    if Password1 == Password2:
        if User.objects.filter(username=username).exists():
            print('13')
        elif User.objects.filter(email=email).exists():
            print("email taken")
        else:
            user = 
               User.objects.create_user(username=User_name,
                                          password=Password1,email=email)
            user.save();
  else:
    return render(request,'register.html')
<!----------layout.html-->
 {% load static %}
 <html>
 <head>
    <title>Self Learn</title>
    <link rel="stylesheet" type="text/css" href="{% static 'styles/main.css' 
                                                                       %}" />
 </head>
 <body>    
    <div class="header">
        <h1 class="logo">Blog</h1> 
        <ul class="menu">
            <a href="#">Home</a>
            <a href="#">About Us</a>
            <a href="login/">Login</a>
            <a href='register/'>Register</a>
        </ul>
    </div>
    <a href="http://www.google.com">
        <img src="{% static 'images\12.PNG' %}" class="logo1"/>
    </a>
    <!----Post------>
    {% for blog in blog %}
    <div class="list">
        <div class="con">
            <h3 style="color:DodgerBlue;">{{blog.author}}</h3>
            <h6 style="font-family: montserrat,sans-serif;"> On 22</h6>
        </div>
        <div class="line"></div>
        <div class="con">
            <h1><b>{{blog.title}}</b></h1>
        </div>
        <div class="con">
            <p>{{blog.desc}}</p>
        </div>
    </div>
    {% endfor %}
    {% block content %}
    {% endblock %}
 </body>
 </html>

Когда я щелкаю по вкладке реестра, как только она возвращает файл register.html, URL-адрес http://12e не найден, и в то время URL-адрес http://127.0.0.1:8000/blog/register/register

Ответы [ 3 ]

0 голосов
/ 17 июня 2019

Это должно работать

  form action="{% url 'register' %}" method="POST">

Использовать всегда "" в HTML-файле, а не ''

0 голосов
/ 17 июня 2019

Я нашел решение. Проблема не в том, чтобы установить расширение python с моим ide. После установки, чтобы оно работало.

0 голосов
/ 17 июня 2019

Вы неправильно используете URL в своем HTML. Вы должны сделать так:

<form action="{% 'register' %}" method='POST'>
....
</form>

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...