注:
电脑为Mac,Python解释器为3.5.4
数据库使用的是pymysql模块代替mysqldb
功能:
运行服务器,在login登录界面输入用户名和密码,post到服务器,
通过数据库判断用户名和密码是否正确。
前期准备工作:
step1:
新建一个Django项目,并为你的APP取贴合实际功能的名字:
填写好后,选择create
step2:
在根目录下新建一个static文件,里面放css js image plugins,这是网页的一些样式和插件
step3:
新建好了以后,将setting.py文件中最后加入:
STATIC_URL = '/static/' STATICFILES_DIRS = [ os.path.join(BASE_DIR, "static"), # 静态文件存放位置 ]
并将标红的那句话暂时注释
step5:
提前在Python解释器中下载好pymysql
将与项目同名的文件夹下的__init__.py文件下加入:
import pymysql pymysql.install_as_MySQLdb()
step6:
将setting.py文件下 的 DATABASES 字段改成:
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': '', #数据库名称 'USER':'', #用户名 'PASSWORD':'', #密码 'HOST':'127.0.0.1', # 主机名 'POST':3306, #端口号 } }
项目相关代码:
有关登录页面:
login.html文件写在:templates文件下
login.html
sign.css文件写在static/css文件下:
body { padding-top: 40px; padding-bottom: 40px; background-color: #eee; } .form-signin { max- 330px; padding: 15px; margin: 0 auto; } .form-signin .form-signin-heading, .form-signin .checkbox { margin-bottom: 10px; } .form-signin .checkbox { font-weight: normal; } .form-signin .form-control { position: relative; height: auto; -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; padding: 10px; font-size: 16px; } .form-signin .form-control:focus { z-index: 2; } .form-signin input[type="email"] { margin-bottom: -1px; border-bottom-right-radius: 0; border-bottom-left-radius: 0; } .form-signin input[type="password"] { margin-bottom: 10px; border-top-left-radius: 0; border-top-right-radius: 0; }
有关数据库:
在APP名字下面models文件中:
from django.db import models # Create your models here. class Userinfo(models.Model): user = models.CharField(max_length=32) pwd = models.CharField(max_length=32)
使用Tools下的 Run Manage.py Task
打开后依次输入命令:
makemigrations
migrate
如果一切OK的话,就会看到存在一个APP名字开头的表:
在表里添加一些数据用于验证登录信息
验证部分:
在APP名字下的views文件中写入:
from django.shortcuts import HttpResponse,render,redirect from login_in import models def index(request): return render(request,'index.html') def login(request): if request.method == 'POST': # 取出输入的用户名和密码 user = request.POST.get('user') pwd = request.POST.get('pwd') # 从数据库中取出所有数据,进行登录校验 all = models.Userinfo.objects.all() for mes in all: if user == mes.user and pwd == mes.pwd: return HttpResponse('success') else: return HttpResponse('fail') return render(request,'login.html')
在urls文件中:
from login_in import views urlpatterns = [ url(r'^admin/', admin.site.urls), url(r'^login/',views.login), ]