This commit is contained in:
wcharles 2019-10-09 08:35:35 +08:00
parent 99f0ee7f7b
commit 98003e547b
10 changed files with 173 additions and 3 deletions

View File

@ -1,4 +1,4 @@
from django.contrib import admin
from . import models
# Register your models here.
admin.site.register(models.Groups)
admin.site.register(models.Groups)

6
groups/forms.py Normal file
View File

@ -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

View File

@ -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;
}

View File

@ -260,7 +260,7 @@
<li class="dropdown user user-menu">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
<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>
<ul class="dropdown-menu">
<!-- User image -->

View File

@ -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>

View File

@ -3,4 +3,8 @@ from . import views
urlpatterns = [
path('', views.index, name='index'),
path('index/', views.index, name='index'),
path('login/', views.login, name='login'),
path('logout/', views.logout, name='logout'),
]

View File

@ -1,8 +1,47 @@
from django.http import HttpResponse
from django.shortcuts import render
from django.shortcuts import redirect
from .models import Groups
from .forms import GroupsForm
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')
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')

View File

@ -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')),
],
),
]