django的登录问题

在初始化的登录中,index.html 和login.hrml在同一个文件夹内可以正常访问。添加表单

<form action="/ctf/index/" method="POST">
        {% csrf_token %} //django 在post表单中自带的内容防止跨站请求伪造
        <p><label>用户名:</label><input name="user"/></p>
        <p><label>密码:</label><input name="pwd"/></p>
        <input type="submit" value="提交">

    </form>

在url.py中添加path

 path('index/',views.Login_view),

在view中

def Login_view(request):
  u=request.POST.get("user","")
  p=request.POST.get("pwd","")

  if u =='zhangsan'and p=='123':
      return HttpResponse("登录成功")
  else:
    return  HttpResponse("登录失败!")

利用mysql做登录

先在ctf的文件中找到modles.py中创建自己的数据模型

class ConInfo(models.Model):
    Con_id = models.CharField(primary_key=True,max_length=20)
    Con_name = models.CharField(max_length=20)
    Con_psw = models.CharField(max_length = 20)

在讲数据模型迁移到数据库中

python manage.py makemigrations ctf

python manage.py migrate

登录数据库可查询表已经创建完毕,自己添加好一个信息。在views.py中修改文件

def Login_view(request):
  u=request.POST.get("user","")
  p=request.POST.get("pwd","")

  if u and p:   
    c=ConInfo.objects.filter(Con_name=u,Con_psw=p).count()
    if c >= 1:
      return HttpResponse("登录成功")
    else:
      return  HttpResponse("账号登录失败!")
  else:
    return HttpResponse("请输入账号密码!" )

数据库的表映射到models.py中

在数据库中有新建的表在终端执行

python manage.py inspectdb>ctf/models.py

就完成了mysql和django的表的统一

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Django是一个流行的Python Web框架,提供了强大的功能来快速开发高质量的网站。在Django中,用户登录和注册是开发任何Web应用的核心部分,通常涉及到用户模型、表单验证和认证系统。 1. 用户模型(Models): Django内置了一个User模型,但你可以自定义一个更详细的用户模型,添加额外字段或定制验证规则。`models.py`文件中的代码类似于这样: ```python from django.contrib.auth.models import AbstractUser class CustomUser(AbstractUser): email = models.EmailField(unique=True) # 其他自定义字段... def __str__(self): return self.email ``` 2. 登录视图(Views): 使用`@login_required`装饰器保护需要登录的页面,并通过`AuthenticationForm`处理用户登录。`views.py`中的例子: ```python from django.contrib.auth import login, authenticate from django.shortcuts import render, redirect def login_view(request): if request.method == 'POST': form = AuthenticationForm(request, data=request.POST) if form.is_valid(): user = authenticate(request, username=form.cleaned_data['username'], password=form.cleaned_data['password']) if user is not None: login(request, user) return redirect('dashboard') else: form.add_error(None, 'Invalid credentials') else: form = AuthenticationForm() return render(request, 'login.html', {'form': form}) ``` 3. 注册视图(Views): 创建一个处理用户注册的视图,通常涉及一个新的表单(如`UserCreationForm`),处理新用户的数据并保存到数据库。 ```python from django.contrib.auth.forms import UserCreationForm def register_view(request): if request.method == 'POST': form = UserCreationForm(request.POST) if form.is_valid(): form.save() return redirect('login') else: form = UserCreationForm() return render(request, 'register.html', {'form': form}) ``` 4. 表单(Forms): 使用Django的表单库创建表单,如`AuthenticationForm`和`UserCreationForm`,用于处理前端的输入。 5. URL配置(URLs): 在`urls.py`中为登录和注册视图分配URL。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值