model資料庫
settings設定
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'django',
'USER':'root',
'PASSWORD':'4866098',
'HOST':'127.0.0.1',
'PORT':3306
}
}
views.py
def login(request):
if request.method == 'POST':
username = request.POST.get('username')
password = request.POST.get('password')
cpassword = request.POST.get('cpassword')
age = request.POST.get('age')
gender = request.POST.get('gender')
phone = request.POST.get('phone')
if password == cpassword:
user = User.objects.create(username=username, password=password, age=age, gender=gender, phone=phone)
if user:
return HttpResponse('注冊成功')
else:
return render(request, 'login.html', context={'err': '注冊失敗'})
else:
return render(request, 'login.html',context={'err':'兩次密碼不一緻'})
return render(request,'login.html')
models.py
from datetime import datetime
from django.db import models
# Create your models here.
class User(models.Model):
#屬性
# id = models.AutoField() # 自增
# id = models.IntegerField(primary_key=True) # 需要設定primary_key=True
username = models.CharField(max_length=15) #設定最大長度為15
password = models.CharField(max_length=12)
age = models.IntegerField() # int類型字段
sex = models.BooleanField(default=False) # bool類型字段
phone = models.CharField(max_length=11)
# join_date = models.DateTimeField(default=datetime.now) # 也是顯示時間的字段,需要導入from datetime import datetime
join_date = models.DateTimeField(auto_now=True) # 時間類型字段,會顯示注冊時間
class Meta: # 更改表明 固定格式
db_table = 'user'
執行動作:(保證一定要添加進apps裡)
遷移:
python manage.py makemigrations
同步:
python manage.py migrate
比對路由:
login.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>使用者注冊</title>
</head>
<body>
<form action="{% url 'login' %}" method="post">
{% csrf_token %}
<p><input type="text" name="username" placeholder="username"></p>
<p><input type="password" name="password" placeholder="password"></p>
<p><input type="password" name="cpassword" placeholder="confirm password"></p><p>{{ err }}</p>
<p><input type="text" name="age" placeholder="age"></p>
<p>
<input type="radio" name="gender" value="0"> 男
<input type="radio" name="gender" value="1"> 女
</p>
<p><input type="text" name="phone" placeholder="phone"></p>
<p><input type="submit" value="注冊使用者"></p>
</form>
</body>
</html>
CSRF
{% csrf_token %}
目的:為了防止csrf(跨站請求),為了防止有人輕易就能盜取你的賬戶資訊。
對安全的一種保證。