login
This commit is contained in:
parent
99f0ee7f7b
commit
98003e547b
|
@ -0,0 +1,6 @@
|
||||||
|
from django import forms
|
||||||
|
|
||||||
|
|
||||||
|
class GroupsForm(forms.Form):
|
||||||
|
username = forms.CharField(label="用户名", max_length=128, widget=forms.TextInput(attrs={'class': 'form-control', 'placeholder': "Username",'autofocus': ''}))
|
||||||
|
password = forms.CharField(label="密码", max_length=256, widget=forms.PasswordInput(attrs={'class': 'form-control','placeholder': "Password"}))
|
Binary file not shown.
After Width: | Height: | Size: 465 B |
Binary file not shown.
After Width: | Height: | Size: 9.3 KiB |
|
@ -0,0 +1,41 @@
|
||||||
|
body {
|
||||||
|
height: 100%;
|
||||||
|
background-image: url('../images/pic1.jpg');
|
||||||
|
}
|
||||||
|
.form-login {
|
||||||
|
width: 100%;
|
||||||
|
max-width: 330px;
|
||||||
|
padding: 15px;
|
||||||
|
margin: 0 auto;
|
||||||
|
}
|
||||||
|
.form-login{
|
||||||
|
margin-top:80px;
|
||||||
|
font-weight: 400;
|
||||||
|
}
|
||||||
|
.form-login .form-control {
|
||||||
|
position: relative;
|
||||||
|
box-sizing: border-box;
|
||||||
|
height: auto;
|
||||||
|
padding: 10px;
|
||||||
|
font-size: 16px;
|
||||||
|
|
||||||
|
}
|
||||||
|
.form-login .form-control:focus {
|
||||||
|
z-index: 2;
|
||||||
|
}
|
||||||
|
.form-login input[type="text"] {
|
||||||
|
margin-bottom: -1px;
|
||||||
|
border-bottom-right-radius: 0;
|
||||||
|
border-bottom-left-radius: 0;
|
||||||
|
}
|
||||||
|
.form-login input[type="password"] {
|
||||||
|
margin-bottom: 10px;
|
||||||
|
border-top-left-radius: 0;
|
||||||
|
border-top-right-radius: 0;
|
||||||
|
}
|
||||||
|
form a{
|
||||||
|
display: inline-block;
|
||||||
|
margin-top:25px;
|
||||||
|
font-size: 12px;
|
||||||
|
line-height: 10px;
|
||||||
|
}
|
|
@ -260,7 +260,7 @@
|
||||||
<li class="dropdown user user-menu">
|
<li class="dropdown user user-menu">
|
||||||
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
|
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
|
||||||
<img src="dist/img/user2-160x160.jpg" class="user-image" alt="User Image">
|
<img src="dist/img/user2-160x160.jpg" class="user-image" alt="User Image">
|
||||||
<span class="hidden-xs">Alexander Pierce</span>
|
<span class="hidden-xs">{{ request.session.user_name }}</span>
|
||||||
</a>
|
</a>
|
||||||
<ul class="dropdown-menu">
|
<ul class="dropdown-menu">
|
||||||
<!-- User image -->
|
<!-- User image -->
|
||||||
|
|
|
@ -0,0 +1,45 @@
|
||||||
|
{% load static %}
|
||||||
|
<!doctype html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<!-- Required meta tags -->
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||||
|
<!-- 上述meta标签*必须*放在最前面,任何其他内容都*必须*跟随其后! -->
|
||||||
|
<!-- Bootstrap CSS -->
|
||||||
|
<link href="{% static 'groups/bower_components/bootstrap/dist/css/bootstrap.min.css' %}" rel="stylesheet"/>
|
||||||
|
<link href="{% static 'groups/login/login.css' %}" rel="stylesheet"/>
|
||||||
|
<title>登录</title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div class="container">
|
||||||
|
<div class="col">
|
||||||
|
<form class="form-login" action="/groups/login/" method="post">
|
||||||
|
{% if message %}
|
||||||
|
<div class="alert alert-warning">{{ message }}</div>
|
||||||
|
{% endif %}
|
||||||
|
{% csrf_token %}
|
||||||
|
<h3 class="text-center">欢迎登录</h3>
|
||||||
|
<div class="form-group">
|
||||||
|
{{ groups_form.username.label_tag }}
|
||||||
|
{{ groups_form.username}}
|
||||||
|
</div>
|
||||||
|
<div class="form-group">
|
||||||
|
{{ groups_form.password.label_tag }}
|
||||||
|
{{ groups_form.password }}
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<button type="submit" class="btn btn-primary float-right">登录</button>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</div> <!-- /container -->
|
||||||
|
|
||||||
|
<!-- Optional JavaScript -->
|
||||||
|
<!-- jQuery first, then Popper.js, then Bootstrap JS -->
|
||||||
|
<script src="{% static 'groups/bower_components/jquery/dist/jquery.js' %}"></script>
|
||||||
|
<script src="https://cdn.bootcss.com/popper.js/1.15.0/umd/popper.js"></script>
|
||||||
|
<script src="{% static 'groups/bower_components/bootstrap/dist/js/bootstrap.min.js' %}"></script>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -3,4 +3,8 @@ from . import views
|
||||||
|
|
||||||
urlpatterns = [
|
urlpatterns = [
|
||||||
path('', views.index, name='index'),
|
path('', views.index, name='index'),
|
||||||
|
path('index/', views.index, name='index'),
|
||||||
|
path('login/', views.login, name='login'),
|
||||||
|
path('logout/', views.logout, name='logout'),
|
||||||
|
|
||||||
]
|
]
|
|
@ -1,8 +1,47 @@
|
||||||
from django.http import HttpResponse
|
from django.http import HttpResponse
|
||||||
from django.shortcuts import render
|
from django.shortcuts import render
|
||||||
|
from django.shortcuts import redirect
|
||||||
from .models import Groups
|
from .models import Groups
|
||||||
|
from .forms import GroupsForm
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def index(request):
|
def index(request):
|
||||||
#latest_question_list = Question.objects.order_by('-pub_date')[:5]
|
if not request.session.get('is_login', None):
|
||||||
|
return redirect('/groups/login/')
|
||||||
return render(request, 'groups/index.html')
|
return render(request, 'groups/index.html')
|
||||||
|
|
||||||
|
def login(request):
|
||||||
|
# 不允许重复登录
|
||||||
|
if request.session.get('is_login', None):
|
||||||
|
return redirect('/groups/index/')
|
||||||
|
if request.method == "POST":
|
||||||
|
groups_form = GroupsForm(request.POST)
|
||||||
|
message = '请检查填写的内容!'
|
||||||
|
if groups_form.is_valid():
|
||||||
|
username = groups_form.cleaned_data.get('username')
|
||||||
|
password = groups_form.cleaned_data.get('password')
|
||||||
|
|
||||||
|
try:
|
||||||
|
user = Groups.objects.get(name=username)
|
||||||
|
except:
|
||||||
|
message = '用户不存在!'
|
||||||
|
return render(request, 'groups/login.html', locals())
|
||||||
|
if user.password == password:
|
||||||
|
request.session['is_login'] = True
|
||||||
|
request.session['user_id'] = user.id
|
||||||
|
request.session['user_name'] = user.name
|
||||||
|
return redirect('/groups/index/')
|
||||||
|
else:
|
||||||
|
message = '密码不正确!'
|
||||||
|
return render(request, 'groups/login.html', locals())
|
||||||
|
else:
|
||||||
|
return render(request, 'groups/login.html', locals())
|
||||||
|
groups_form = GroupsForm()
|
||||||
|
return render(request, 'groups/login.html', locals())
|
||||||
|
|
||||||
|
def logout(request):
|
||||||
|
if not request.session.get('is_login', None):
|
||||||
|
return redirect('/groups/login')
|
||||||
|
request.session.flush()
|
||||||
|
return redirect('/groups/login')
|
||||||
|
|
|
@ -0,0 +1,35 @@
|
||||||
|
# Generated by Django 2.1.4 on 2019-09-12 15:10
|
||||||
|
|
||||||
|
from django.db import migrations, models
|
||||||
|
import django.db.models.deletion
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('safesite', '0264_auto_20190909_0916'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.CreateModel(
|
||||||
|
name='CompanyInfo',
|
||||||
|
fields=[
|
||||||
|
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||||
|
('name', models.CharField(max_length=64, verbose_name='公司名称')),
|
||||||
|
('nature', models.SmallIntegerField(choices=[(0, '国企'), (1, '私企')], default=0, verbose_name='企业性质')),
|
||||||
|
('address', models.CharField(max_length=128, verbose_name='公司地址')),
|
||||||
|
('fixed_assets', models.IntegerField(blank=True, null=True, verbose_name='固定资产')),
|
||||||
|
('website', models.CharField(blank=True, max_length=64, null=True, verbose_name='公司网址')),
|
||||||
|
('peoplenum', models.IntegerField(blank=True, null=True, verbose_name='公司人数')),
|
||||||
|
('legalperson', models.CharField(blank=True, max_length=24, null=True, verbose_name='法人代表')),
|
||||||
|
('legalperson_phone', models.CharField(blank=True, max_length=24, null=True, verbose_name='法人电话')),
|
||||||
|
('liaison', models.CharField(max_length=24, verbose_name='联系人')),
|
||||||
|
('liaison_phone', models.CharField(max_length=24, verbose_name='联系人电话')),
|
||||||
|
('liaison_fax', models.CharField(blank=True, max_length=10, null=True, verbose_name='联系人传真')),
|
||||||
|
('introduce', models.TextField(blank=True, null=True, verbose_name='公司概况')),
|
||||||
|
('createtime', models.DateTimeField(auto_now_add=True)),
|
||||||
|
('modifytime', models.DateTimeField(auto_now=True)),
|
||||||
|
('partment', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, to='safesite.Partment', verbose_name='公司ID')),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
]
|
Loading…
Reference in New Issue