Django注册登录界面

本文介绍了如何在Django框架下创建注册和登录界面。通过View.py中的RegisterPage和LoginPage函数处理用户表单数据,结合mysql数据库进行用户验证。前端使用layui模板,登录和注册逻辑清晰,错误提示友好。
摘要由CSDN通过智能技术生成

这是我自己用的django框架下的代码,用于登录注册。
以及将django自带admin系统的权限管理移植(还在尝试)

1. View.py(def RegisterPage,def LoginPage)

def RegisterPage(request):
    if request.method == "GET":
        return render(request, 'register.html')
    if request.method == "POST":
        username = request.POST.get("name")
        password = request.POST.get("password")
        gender = request.POST.get("sex")
        # 连接数据库 方便下面使用游标语句
        conn = MySQLdb.connect(host="127.0.0.1", user="test", passwd="123456", db="test", charset='utf8', cursorclass=MySQLdb.cursors.DictCursor)
        cursor = conn.cursor()
        if username:  # 确保用户名不为空
            selectname = cursor.execute("select Username from Userinfo where Username='" + username + "' ")
            conn.commit()
            # 在数据库中查找是否有和用户输入一样的名字
            if selectname:  # 如果这个名字在数据库中
                return render(request, 'register.html', {
   'message': 'This name has been registered'})
            else:  # 名字不在数据库
                if password:  # (名字不在数据库的情况下)密码是否为空
                    cursor.execute("INSERT INTO Userinfo(Username, Password, Gender)" "value(%s,%s,%s)", [username, password, gender])
                    conn.commit()
                    # 修改session的值
                    request.session['is_registed'] = 'true'
                    request.session['username'] = username
                    return render(request, 'login.html', {
   'message': 'Successful registed!'})
                else:  # 密码为空
                    return render(request, 'register.html', {
   'message': 'Password can not be empty!'})
        else:  # 名字为空
            return render(request, 'register.html', {
   'message': 'Please input username'})
    return render(request, '404.html')  # 没有连接前端表单,直接报错







def LoginPage(request):
    if request.method == "GET":
        return render(request, 'login.html')  
    if request.method == "POST":
        loginname = request.POST.get("name")
        loginpassword = request.POST.get("password")
        conn = MySQLdb.connect(host="127.0.0.1", user="test", passwd="123456", db="test", charset='utf8', cursorclass=MySQLdb.cursors.DictCursor)
        cursor = conn.cursor()
        checkname = cursor.execute("select Username from Userinfo where Username='" + loginname + "' ")
        print(checkname) # 这里并不是显示具体数据,而是用0 1来表示是否找到对应的数据
        conn.commit()
        if checkname == 1:  # 如果名字能找到
            cursor.execute("select Password from Userinfo where Username='" + loginname + "' ")
            checkpassword = cursor.fetchone()
            conn.commit()
            #如果在这里print(checkpassword)则会得到字典形式的密码,如{"Password":123456}
            if checkpassword['Password'] == loginpassword:  # 如果密码相等
                request.session['is_login'] = 'true'
                request.session['loginname'] = loginname
                #定义session失效时间
                request.session.set_expiry(86400)
                return render(request, 'default.html', {
   'message': 'yes!'})  #打開主頁
            else:  # 如果密码不相等,则错误
                return render(request, 'login.html', {
   'message': 'Password error!'}
在使用Django设计登录界面时,VS Code(Visual Studio Code)是一个强大的代码编辑器,提供了丰富的插件支持和优秀的开发环境。首先,你需要安装Django和VS Code,然后设置好项目结构。接下来,你可以按照以下步骤创建登录界面: 1. **创建项目**: 在VS Code中,使用`django-admin startproject your_project_name`命令初始化一个新的Django项目。 2. **设置应用**: 在项目目录下创建一个名为`auth_app`的应用,`python manage.py startapp auth_app`。 3. **模型**: 在`auth_app/models.py`文件中,添加User模型或使用默认的Django User模型。 4. **视图**: 在`auth_app/views.py`中编写视图函数,比如`LoginView`,使用Django内置的`AuthenticationForm`来处理登录表单验证。 5. **URL配置**: 在`auth_app/urls.py`中,定义登录和登出的URL路径,与视图函数关联。 6. **模板**: 创建`templates/auth_app/login.html`模板,用HTML和Django模板语言构建登录表单。 7. **配置`settings.py`**: 在项目的`settings.py`中,确保`AUTHENTICATION_BACKENDS`设置正确,启用表单登录。 8. **迁移和运行服务器**: 使用`python manage.py makemigrations`和`python manage.py migrate`进行数据库迁移,然后运行`python manage.py runserver`启动开发服务器。 在VS Code中,你可以使用Django插件如`Django`、`Django Snippets`等提高开发效率,还可以通过`Live Server`插件实时预览前端更改。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值