Django 向curlpost请求注册新用户

Django 向curlpost请求注册新用户,django,curl,django-rest-framework,Django,Curl,Django Rest Framework,我正试图用我的Django REST API实现注册。 我知道如何登录或获取令牌,以便 curl -X POST -d "username=user2&password=qwer" http://localhost:8000/signin > index.html curl -X POST -d "username=user2&password=qwer" http://localhost:8000/api-token-auth/ 但我现在需要的是注册一个新用户。

我正试图用我的Django REST API实现注册。 我知道如何登录或获取令牌,以便

curl -X POST -d "username=user2&password=qwer"  http://localhost:8000/signin > index.html

curl -X POST -d "username=user2&password=qwer"  http://localhost:8000/api-token-auth/ 
但我现在需要的是注册一个新用户。我这样试过:

curl --cookie cookie.txt http://localhost:8000/signup/ -H "Content-Type: application/json" -H "X-CSRFToken: TP5mW4dxjpVO6UOk3nG6Ugk8jqv2u8E2" -X POST -d '{"username":"user4","email":"ggg@gmail.com","password":"qwer"}'  >index.html
但是除了在index.html文件中获得一个注册页面外,什么都没有发生。没有在数据库中创建新用户

这是我的注册表单的HTML模板。它工作得很好

为了注册新用户,我应该向我的站点传递什么请求

{% extends 'base.html' %}
{% block title %}Sign up · Parsifal{% endblock %}
{% block javascript %}
  <script>
    $(function () {
      $('#id_username').focus();
    });
  </script>
{% endblock %}
{% block content %}
  <div class="row">
    <div class="col-md-6 col-md-offset-3">
      <div class="panel panel-default">
        <div class="panel-heading">
          <h3 class="panel-title">Sign up for Parsifal</h3>
        </div>
        <div class="panel-body">
          <form action="/signup/" method="post">
            {% csrf_token %}
            <div class="panel-group{% if form.username.errors %} has-error{% endif %}">
              <label class="control-label" for="{{ form.username.id_for_label }}">{{ form.username.label }}</label>
              <input type="text" class="form-control" value="{{ form.username.value|default_if_none:'' }}" id="{{ form.username.id_for_label }}" name="{{ form.username.html_name }}" maxlength="{{ form.username.field.max_length }}">
              <span class="help-block">(Usernames may contain <strong>alphanumeric</strong>, <strong>_</strong> and <strong>.</strong> characters)</span>
              {% for error in form.username.errors %}
                <span class="help-block">{{ error }}</span>
              {% endfor %}
            </div>
            <div class="panel-group{% if form.email.errors %} has-error{% endif %}">
              <label class="control-label" for="{{ form.email.id_for_label }}">{{ form.email.label }}</label>
              <input type="email" class="form-control" value="{{ form.email.value|default_if_none:'' }}" id="{{ form.email.id_for_label }}" name="{{ form.email.html_name }}" maxlength="{{ form.email.field.max_length }}">
              {% for error in form.email.errors %}
                <span class="help-block">{{ error }}</span>
              {% endfor %}
            </div>
            <div class="panel-group{% if form.password.errors %} has-error{% endif %}">
              <label class="control-label" for="{{ form.password.id_for_label }}">{{ form.password.label }}</label>
              <input type="password" class="form-control" value="{{ form.password.value|default_if_none:'' }}" id="{{ form.password.id_for_label }}" name="{{ form.password.html_name }}">
              {% for error in form.password.errors %}
                <span class="help-block">{{ error }}</span>
              {% endfor %}
            </div>
            <div class="panel-group{% if form.confirm_password.errors %} has-error{% endif %}">
              <label class="control-label" for="{{ form.confirm_password.id_for_label }}">{{ form.confirm_password.label }}</label>
              <input type="password" class="form-control" value="{{ form.confirm_password.value|default_if_none:'' }}" id="{{ form.confirm_password.id_for_label }}" name="{{ form.confirm_password.html_name }}">
              {% for error in form.confirm_password.errors %}
                <span class="help-block">{{ error }}</span>
              {% endfor %}
            </div>
            <button type="submit" class="btn btn-success">Create an account</button>
          </form>
        </div>
      </div>
    </div>
  </div>
{% endblock content %}
{%extends'base.html%}
{%block title%}注册·帕西法尔{%endblock%}
{%block javascript%}
$(函数(){
$('#id_username').focus();
});
{%endblock%}
{%block content%}
注册帕西法尔
{%csrf_令牌%}
{{form.username.label}
(用户名可以包含字母数字字符)
{%form.username.errors%中的错误}
{{error}}
{%endfor%}
{{form.email.label}
{%form.email.errors%}
{{error}}
{%endfor%}
{{form.password.label}
{%form.password.errors%}
{{error}}
{%endfor%}
{{form.confirm_password.label}
{%form.confirm_password.errors%}
{{error}}
{%endfor%}
创建帐户
{%endblock内容%}

从sigin页面获取一个新的
csrf
令牌,并在您的curl请求中使用它。或者出于调试目的,您可以禁用
csrf
,并检查curl命令是否有效。