使用curl post request注册新用户

时间:2015-12-27 15:38:28

标签: 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/ 

但我现在需要的是注册一个新用户。我这样试过:

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 %}

0 个答案:

没有答案