Django登录案例-基础版

创建Django项目

django-admin startproject projectname

创建app

python manage.py startapp appname

注册app

打开settings.py在INSTALLED_APPS里面添加上以下代码:

'userapp.apps.UserappConfig',

注释掉csrf

打开settings.py文件找到以下代码并注释掉csrf

MIDDLEWARE = [
    'django.middleware.security.SecurityMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.common.CommonMiddleware',
    # 'django.middleware.csrf.CsrfViewMiddleware',  # 注释以便form表单提交测试
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
]

Django项目使用MySQL数据库

1、在Django项目的settings.py文件中配置数据库信息:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',  # 数据库引擎,类型
        'NAME': '数据库名称',
        'USER': '用户名',
        'PASSWORD': '密码',
        'HOST': '地址',
        'POST': 3306,
    }
}

2、在与Django项目同名的目录下的__init__.py文件中写如下代码,告诉Django使用pymysql模块连接MySQL数据库:

import pymysql
pymysql.install_as_MySQLdb()

创建数据库

create database name;

使用orm操作数据库

1、项目的app目录下找到models.py文件写入以下代码:

from django.db import models


# Create your models here.
class User(models.Model):
    user = models.CharField(max_length=32)  # 用户名 charset(32)
    password = models.CharField(max_length=32)  # 密码 charset(32)

2、数据迁移,需要自己手动创建好对应的数据库;在Terminal终端中输入迁移命令:

python manage.py makemigrations  # 生成迁移记录文件
python manage.py migrate  # 迁移

执行完命令后Django会帮我们创建相应的数据表
uploading-image-909523.png
3、自行添加几条数据用于登录测试。

配置静态文件路径

1、在项目的根目录下创建一个static目录用于存放静态文件。
2、在Django项目的settings.py文件中添加如下代码,设置静态文件的别名和静态文件的路径。一个项目中可以添加多个静态文件路径,依次往下查找。

STATIC_URL = '/static/'  # 静态文件别名
STATICFILES_DIRS = [
	os.path.join(BASE_DIR, 'static')
]

注意:在引用静态文件时需要以别名开头,示例如下:

<link rel="stylesheet" href="/static/css/style.css">

创建登录页面

1、在项目的templates目录下创建login.html和index.html文件。

  • login.html
<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <title>login</title>
</head>
<body>
<form action="" method="post">
    密码:<input type="text" name="username" id="" placeholder="请输入账号">
    密码:<input type="password" name="password" id="" placeholder="请输入密码">
    <button type="submit">登录</button>
</form>
</body>
</html>

编写登录函数

1、在项目app目录下的views.py文件中编写登录对应的函数,代码如下:

from django.shortcuts import render
from django.shortcuts import redirect  # 重定向

from userapp.models import *


# Create your views here.
# index 函数
def index(request):
    return render(request, 'index.html')


# 登录函数
def login(request):
    # 1、判断浏览器的请求方式
    if request.method == 'POST':
        # 2、post请求,获取浏览器提交过来的数据
        username = request.POST['b_username']  # b_username 为浏览器提交过来的name字段
        password = request.POST['b_password']  # b_password 为浏览器提交过来的name字段
        # 拿到浏览器提交的数据后与数据库中的用户名和密码做比较,需要导入models
        if User.objects.filter(user=username, password=password):
            # 有数据返回则表示登录成功,重定向到首页
            return redirect('/index/')
    # get请求或者登录失败都返回登录页面进行重新登录
    return render(request, 'login.html')

2、在与项目同名的目录下的urls.py文件中添加上函数与url的对应关系:

from django.conf.urls import url
from django.contrib import admin
from userapp.views import *

urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^index/', index),
    url(r'^login/', login),
]

启动项目

1、终端启动,进入到项目目录下执行以下命令:

python manage.py runserver

2、pycharm启动,点击菜单栏中的Run,在点击Run ‘projectname’或者直接点击右上角的三角形图标。
uploading-image-971824.png

登录测试

1、启动项目后再浏览器中输入:127.0.0.1:8000/login回车即可进入到登录界面,输入用户名和密码点击提交,如果账号密码正确就会重定向到首页,如果登录失败则返回登录页面重新登录。

posted @ 2019-09-27 19:42  执笔画素颜  阅读(179)  评论(0编辑  收藏  举报