天天看點

模型model

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(跨站請求),為了防止有人輕易就能盜取你的賬戶資訊。
對安全的一種保證。