settings.py

MIDDLEWARE = [
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
]

一般不用修改settings.py,但是使用模版需要修改如下:(即将TEMPLATES中的DIRS改成[os.path.join(BASE_DIR, 'templates')])

TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [os.path.join(BASE_DIR, 'templates')],
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
],
},
},
]

urls.py

from django.urls import path
from cookie import views
urlpatterns = [
path('admin/', admin.site.urls),
path('login/',views.login),
path('index/',views.index),
]

models.py

from django.db import models

# Create your models here.
class User(models.Model):
user=models.CharField(max_length=20,unique=True,db_index=True)
pwd=models.CharField(max_length=20,db_index=True)
def __str__(self):
return self.user

views.py

from django.shortcuts import render, redirect
from .models import User # Create your views here.
def login(request):
msg = ''
if request.method == 'POST':
name = request.POST.get("user")
pwd = request.POST.get("pwd")
c = User.objects.filter(user=name, pwd=pwd).count()
if c:
request.session['is_log'] = 111
request.session['username'] = name
return redirect('/index/')
else:
msg = '用户名或密码有误'
return render(request, 'login.html', {'msg': msg})
else:
return render(request, 'login.html', {'msg': msg}) def index(request):
print(request.session.get('is_log'))
if request.session.get('is_log', None):
user = request.session.get('username')
return render(request, 'index.html', {'user': user})
else:
return redirect('/login/') def bb(request):
return redirect('/login/')

index.html

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>index</title>
</head>
<body>
欢迎 {{ user }}!
</body>
</html>

login.html

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>login</title>
</head>
<body>
<form action="/login/" method="post">
{% csrf_token %}
<div>
<laber for="user">用户名</laber>
<input id="user" type="text" name="user"/>
</div>
<div>
<laber for="pwd">密码</laber>
<input id="pwd" type="password" name="pwd">
</div>
<div>
<input type="submit" value="登录">
</div>
</form>
</body>
</html>

注意:由于我们将session存于数据库中所以要执行python manage.py makemigrations 后再执行python manage.py migrate创建数据表。

最新文章

  1. EA中的模板管理
  2. org.pentaho.di.ui.core.widget.PasswordTextVar
  3. python的装饰器
  4. 303. Range Sum Query - Immutable
  5. Linux进程的睡眠和唤醒简析
  6. Asp.net 菜单控件
  7. ASP.NET开发,简化与封装
  8. Visual Studio中使用Git Flow
  9. mysql获取当前日期的周一和周日的日期
  10. Codeforces Round #548 (Div. 2) F splay(新坑) + 思维
  11. ionic cordova platform add android Cordova failed to install plugin Error: ENOENT: no such file or directory AndroidManifest.xml
  12. C# ComboBoxTree控件
  13. (转)Syntax error:
  14. zk如何实现watch
  15. 转: c# 字符串公式计算
  16. Defer 声明的设计理念
  17. 关于pom.xml中的MAVEN出错处理
  18. Python函数 help()
  19. 近期对于windows服务的理解
  20. CodeForces 620E:New Year Tree(dfs序+线段树)

热门文章

  1. visual studio清理nuget包缓存
  2. 腾讯云安全组,实现服务器外网ip访问网站
  3. 使用dom4j写xml文件——源码
  4. java模式之一------代理模式
  5. 说说JSON和JSONP区别
  6. nodejs报错 XMLHttpRequest cannot load localhost:3000/test_date/. Cross origin requests are only supported for protocol schemes: http, data, chrome, chrome-extension, https.
  7. 几种常用的bootstrap功能。
  8. Activiti 数据库表自动生成策略
  9. Android 图片缩略图显示
  10. Teamviewer 手机端怎么使用右键-已解决