注:

  电脑为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-width: 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;
}

sign.css

有关数据库:

在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)

models

使用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')

views文件

在urls文件中:

from login_in import views
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^login/',views.login),
]

最新文章

  1. 第五篇T语言实例开发,数组空间使用
  2. Android(java)学习笔记101:WindowManager 中LayoutParams的各种属性
  3. 自定义弧形的 tabBar
  4. UVa10635 - Prince and Princess(LCS转LIS)
  5. java项目---用java实现二叉平衡树(AVL树)并打印结果(详)(3星)
  6. 02 jmeter性能测试系列_JForum测试论坛的环境搭建
  7. C# 多线程锁之ReaderWriterLockSlim
  8. c/c++柔性数组成员
  9. jquery为表格行添加上下移动画效果
  10. Mac获取公网ip
  11. Jquery中parentsUntil函数调用最容易犯的三个错误
  12. Mysql双主 keepalived+lvs实现mysql高可用性
  13. Android使用动态代理搭建网络模块框架
  14. [LOJ#6033]. 「雅礼集训 2017 Day2」棋盘游戏[二分图博弈、匈牙利算法]
  15. Libssh认证绕过CVE-2018-10933漏洞复现
  16. Make a DAC with a microcontroller's PWM timer
  17. WPF TabControl控件-事件相关问题
  18. MyBatis学习笔记(一)创建第一个MyBatis项目
  19. 撩课-Java每天10道面试题第2天
  20. mmap函数使用

热门文章

  1. 使用fiddl模拟弱网
  2. [转帖]我最近研究了hive的相关技术,有点心得,这里和大家分享下。
  3. lnmp+tp5安装纪要
  4. Windows10下Anaconda+Tensorflow+Keras环境配置
  5. 面向对象分析与设计—OOD部分
  6. NIO-FileChannel源码分析
  7. Spring Cloud Alibaba学习笔记(9) - RocketMQ安装与RocketMQ控制台
  8. springboot中将日志信息存放在catalina.base中
  9. Gogs搭建私有git代码仓库
  10. ef core数据迁移的一点小感悟