Django之注册

首先在PX中 创建一个新的项目,
如图:
Django之注册_第1张图片
修改settings.py
如图:
Django之注册_第2张图片
Django之注册_第3张图片
在urls.py填入:

from django.contrib import admin
from django.urls import path,include
urlpatterns = [
    path('admin/', admin.site.urls),
    path('user/',include('blog_user.urls',namespace="user")),
]

如图:
Django之注册_第4张图片


在wsgi.py填入:
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "youran.settings")
application = get_wsgi_application()
如图:
Django之注册_第5张图片
在blog_user下创建models.py
内容写:
from django.db import models
# Create your models here.
class BlogUser(models.Model):
    userName=models.CharField(max_length=20)
    passWord=models.CharField(max_length=20)
如图:
Django之注册_第6张图片


运行models.py
如图:
Django之注册_第7张图片
在结果框中输入:
#Django根据模板为你创建一个要执行的模型
1.makemigrations blog_user
#创建了一张表
2.sqlmigrate blog_user 0001
执行你的应用在数据库中创建一张表
3.migrate blog_user 0001
如图:
Django之注册_第8张图片
当三条命令执行完毕后,你的数据库会有两张表:
如图:
Django之注册_第9张图片
在templates下创建user文件夹,
在user里面创建两个html

如图
Django之注册_第10张图片

在register.html里面的 body里面输入:


          {% csrf_token %}
       


            用户:
       


       


            密码:
       


       
   

如图:
Django之注册_第11张图片
在welcome.html里面输入:

           

注册成功 欢迎你{{ bloguser.userName }}的到来



如图:
Django之注册_第12张图片

在blog_user下创建views.py:
from django.shortcuts import render,reverse,redirect
from blog_user.models import BlogUser
# Create your views here.
def register(request):   #用来处理请求注册的命令
    #做一个区分 get post 请求类别
    if request.method=='GET':
        return render(request,'user/register.html',{});
    elif request.method=='POST':
        #创建一个用户/数据库表 对象模型
        bloguser= BlogUser()
        bloguser.userName=request.POST.get('username')
        bloguser.passWord=request.POST.get('upwd')
        # 异常捕获
        try:
            bloguser.save()#执行数据库保存
            # #重定向 :为了防止刷新页面的时候重复提交数据
            return redirect(reverse('user:welcome',args=[bloguser.id]))
        except:#捕获异常
            return render(request, 'user/register.html',
                          {'bloguser':bloguser,
                           'error':'用户名重复'});

# 用来处理welcome请求
def welcome(request,id):
    #根据你的请求 带参的那个id 获取数据库信息
    bloguser=BlogUser.objects.get(pk=id)
    #转发
    return render(request, 'user/welcome.html', {'bloguser': bloguser});
'''
注意:如果重新注册相同的名字和密码还是可以注册成功,下面解决:
 1.数据库当中加一个主键,或者加一个唯一索引
即:在你原来的模型上加一个nuique=True,这样名字一旦重复就会抛异常,所以
 要异常捕获
 '''
如图:
Django之注册_第13张图片


一:修改models.py:
from django.db import models
# Create your models here.
class BlogUser(models.Model):
    userName=models.CharField(max_length=20,unique=True)
    passWord=models.CharField(max_length=20)
#如果修改  完毕之后需要 再次执行 那三个命令:
1.makemigrations blog_user
2.sqlmigrate blog_user 0002
3.migrate blog_user 0002
二:在register.html里面修改:


            用户:
       


如图:
Django之注册_第14张图片

来我们试一下:

1.运行项目:
如图:
Django之注册_第15张图片

2.点击http://127.0.0.1:8000
 如图:
Django之注册_第16张图片
3.在http://127.0.0.1:8000/后面加上user/register
如图:

Django之注册_第17张图片

4 注册一下:
如:用户:张三 密码:123789
如图:

Django之注册_第18张图片

同时你的数据库中会出现:
如图:

Django之注册_第19张图片


试试名字重复:
Django之注册_第20张图片

完毕!

你可能感兴趣的:(Django之注册)