要写这个,前提还是需要知道三个知识:
一个是urls.py,它是写我们的路由关系的,之前我写了通过wsgiref写一个简单的服务端,也用到了路由,就是
请求过来的url和视图函数的对应关系。
二是就是几个类,render,HttpResponse,redirect,我就说说功能
render:将模板(也就是html文件)渲染,再发送到前端页面---大概就是这样的功能,用词不太准确
HttpResponse:将字符串返回到前端页面
redirect:重定向的功能
三就是数据库相关的,orm吧
1、注册登陆两个功能,想都不要在项目templates文件夹中写两个html页面,一个是登陆,一个是注册。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>register</title>
</head>
<body>
<h1>注册界面</h1>
<form action="" method="post">
用户名:<input type="text" name="name"><br>
密码:<input type="password" name="pwd"><br>
确认密码:<input type="password" name="re_pwd"><br>
<input type="submit" value="注册">
</form>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>login</title>
</head>
<body>
<h1>登陆界面</h1>
{#最简单的html代码,哈哈#}
{#这里要提醒下,提交到后台的get,post方式都可以,但是作为账户数据的话,用post#}
<form action="/login/" method="post">
用户名:<input type="text" name="name"><br>
密码:<input type="password" name="pwd"><br>
<input type="submit" value="登陆">
</form>
</body>
</html>
2、写好了我们首先去urls.py文件中写好路由,把视图函数映射关系写好
from django.conf.urls import url
from django.contrib import admin
from app01 import views
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^login', views.login),
url(r'^register', views.register),
]
3、写好了就去app01中view文件中写相应的函数了,先写个空函数占位吧
4、需要数据库,先去app01中models.py写一个类(也就是创建表),属性写好了,就执行两句命令
python3 manage.py makemigrations
python3 manage.py migrate
这样我们的表就创建好了,那么就应该去视图函数写相关逻辑
from django.db import models # Create your models here. class User(models.Model): id = models.AutoField(primary_key=True) name = models.CharField(max_length=32) pwd = models.CharField(max_length=32)
##创建好了,就在cmd中执行上面两条命令就好
5、在视图函数中写逻辑代码
from django.shortcuts import render,HttpResponse,redirect from app01 import models # Create your views here. def login(request): # request这是前端请求发来的请求,携带的所有数据,django给我们做了一些列的处理,封装成一个对象传过来 # 其实挺简单,学会用它给你的一些方法就好了,其实你自己也想到它是怎样处理的。 if request.method == 'GET': return render(request,'login.html') if request.method == 'POST': name = request.POST.get('name') pwd = request.POST.get('pwd') user_obj = models.User.objects.filter(name=name,pwd=pwd).first() if user_obj: return HttpResponse('登陆成功') else: return HttpResponse('用户名或密码错误') def register(request): if request.method == 'GET': return render(request,'register.html') if request.method == 'POST': name = request.POST.get('name') pwd = request.POST.get('pwd') re_pwd = request.POST.get('re_pwd') if name and pwd and re_pwd: if pwd == re_pwd: user_obj = models.User.objects.filter(name=name).first() if user_obj: return HttpResponse('用户已存在') else: models.User.objects.create(name=name,pwd=pwd).save() return redirect('/login/') else: return HttpResponse('两次密码不一致') else: return HttpResponse('不能有空!')
6、启动django项目就行了,然后在浏览器输入对应的url,就行操作。