urls.py
from django.contrib import admin from django.urls import path from app_user import views urlpatterns = [ path('admin/', admin.site.urls), path('login/', views.login), path('register/', views.reg), ]
app_user部分
modles.py
class User(models.Model): id = models.AutoField(primary_key=True,verbose_name='主键') username = models.CharField(max_length=32,verbose_name='用户名') password = models.CharField(verbose_name='密码',max_length=64) def __str__(self): return '%s'%self.username
views.py
from django.shortcuts import render,HttpResponse from app_user import models def login(request): if request.method == 'POST': username = request.POST.get('username') password = request.POST.get('password') user_obj = models.User.objects.filter(username=username).first() if user_obj: if password == user_obj.password: return HttpResponse("登陆成功") else: return HttpResponse("密码错误") else: return HttpResponse("用户不存在") return render(request, 'login.html') def reg(request): if request.method == "POST": username = request.POST.get('username') password = request.POST.get('password') user_obj = models.User(username=username,password=password) user_obj.save() # 保存数据 # 先给用户返回一个注册页面 return render(request,'register.html'
login.html部分代码
<form action="" method="post"> <p>username:<input type="text" name="username" class="form-control"></p> <p>password:<input type="password" name="password" class="form-control"></p> <input type="submit" class="btn btn-success btn-block"> </form>
register.html
<form action="" method="post"> <p>username:<input type="text" name="username" class="form-control"></p> <p>password:<input type="password" name="password" class="form-control"></p> <input type="submit" class="btn btn-danger btn-block"> </form>
makemigration
migrate
manage.py@d60 > makemigrations bash -cl "/Users/chenfeng/PycharmProjects/d60/venv/bin/python /Applications/PyCharm.app/Contents/plugins/python/helpers/pycharm/django_manage.py makemigrations /Users/chenfeng/PycharmProjects/d60" Tracking file by folder pattern: migrations Migrations for 'app_user': app_user/migrations/0001_initial.py - Create model User Following files were affected /Users/chenfeng/PycharmProjects/d60/app_user/migrations/0001_initial.py Process finished with exit code 0 manage.py@d60 > migrate bash -cl "/Users/chenfeng/PycharmProjects/d60/venv/bin/python /Applications/PyCharm.app/Contents/plugins/python/helpers/pycharm/django_manage.py migrate /Users/chenfeng/PycharmProjects/d60" Tracking file by folder pattern: migrations Operations to perform: Apply all migrations: admin, app_user, auth, contenttypes, sessions Running migrations: Applying contenttypes.0001_initial... OK Applying auth.0001_initial... OK Applying admin.0001_initial... OK Applying admin.0002_logentry_remove_auto_add... OK Applying admin.0003_logentry_add_action_flag_choices... OK Applying app_user.0001_initial... OK Applying contenttypes.0002_remove_content_type_name... OK Applying auth.0002_alter_permission_name_max_length... OK Applying auth.0003_alter_user_email_max_length... OK Applying auth.0004_alter_user_username_opts... OK Applying auth.0005_alter_user_last_login_null... OK Applying auth.0006_require_contenttypes_0002... OK Applying auth.0007_alter_validators_add_error_messages... OK Applying auth.0008_alter_user_username_max_length... OK Applying auth.0009_alter_user_last_name_max_length... OK Applying auth.0010_alter_group_name_max_length... OK Applying auth.0011_update_proxy_permissions... OK Applying sessions.0001_initial... OK Process finished with exit code 0
然后migrations文件夹下出现0001_init.py文件
# Generated by Django 3.0.6 on 2020-05-25 07:43 from django.db import migrations, models class Migration(migrations.Migration): initial = True dependencies = [ ] operations = [ migrations.CreateModel( name='User', fields=[ ('id', models.AutoField(primary_key=True, serialize=False, verbose_name='主键')), ('username', models.CharField(max_length=32, verbose_name='用户名')), ('password', models.CharField(max_length=64, verbose_name='密码')), ], ), ]
测试结果
先注册一个 账号asd,密码123为例
在登录界面输入账号asd,密码123
返回登录成功
在登录页面输入
账号asd,密码随便输一个
返回密码错误
在登录界面随便输一个用户名和密码
返回用户不存在
后台信息反馈
django.db.utils.OperationalError: no such table: app_user_user [25/May/2020 07:42:35] "POST /login/ HTTP/1.1" 500 126437 [25/May/2020 07:48:05] "POST /login/ HTTP/1.1" 200 15 [25/May/2020 07:48:10] "GET /login/ HTTP/1.1" 200 565 [25/May/2020 07:53:12] "GET /register/ HTTP/1.1" 200 603 [25/May/2020 07:53:34] "POST /register/ HTTP/1.1" 200 603 [25/May/2020 07:53:40] "GET /register/ HTTP/1.1" 200 603 [25/May/2020 07:53:43] "POST /login/ HTTP/1.1" 200 12 [25/May/2020 07:53:47] "GET /login/ HTTP/1.1" 200 565 [25/May/2020 07:54:06] "POST /login/ HTTP/1.1" 200 12 [25/May/2020 07:54:12] "GET /login/ HTTP/1.1" 200 565 [25/May/2020 07:54:18] "POST /login/ HTTP/1.1" 200 12 [25/May/2020 07:54:20] "GET /login/ HTTP/1.1" 200 565 [25/May/2020 07:54:26] "POST /login/ HTTP/1.1" 200 15