Django 向curlpost请求注册新用户
我正试图用我的Django REST API实现注册。 我知道如何登录或获取令牌,以便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/ 但我现在需要的是注册一个新用户。
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命令是否有效。