from django.db import models

# Create your models here.

class Book(models.Model):
name=models.CharField(max_length=32)
pubDate=models.DateField()
price=models.DecimalField(max_digits=5,decimal_places=2)
publish=models.ForeignKey('Publish')
author=models.ManyToManyField('Author') class Publish(models.Model):
name=models.CharField(max_length=32)
pubdetail=models.OneToOneField('Pubdetail') class Pubdetail(models.Model):
add=models.CharField(max_length=32)
content=models.CharField(max_length=32) class Author(models.Model):
name=models.CharField(max_length=32)
authdetail=models.OneToOneField('Authordetail') class Authordetail(models.Model):
sex=models.CharField(max_length=32)
tel=models.IntegerField()
addr=models.CharField(max_length=32) class User(models.Model):
name=models.CharField(max_length=32)
password=models.CharField(max_length=32)

models.py

from django.shortcuts import render,redirect
from app01 import models
from django.contrib import auth
# Create your views here.
from django.contrib.auth.models import User
from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger
from django.contrib.auth import logout
def login(request):
s=''
if request.method=='POST': name=request.POST.get('name')
pwd=request.POST.get('password') # res=models.User.objects.filter(name=name,password=pwd)
# if res:
#cookie代码实现
# ret=redirect('/shujichaxun/')
# ret.set_cookie('login','asd',10)
# return ret #auth代码实现
res=auth.authenticate(username=name,password=pwd)
if res:
print('---------------------',request.user.__dict__,type(request.user))
auth.login(request,res)
return redirect('/shujichaxun/') #session实现代码
# request.session['asd']=True
# return redirect('/shujichaxun/')
s='用户名或密码错误'
return render(request,'登录校验.html',{'s':s}) def zhuce(request):
if request.method=='POST':
name=request.POST.get('name')
pwd=request.POST.get('password')
if len(name)>0 and len(pwd)>0 :
#注册方式1: 自建user表
# user_obj=models.User.objects.create(name=name,password=pwd) #用auth模块实现,用django自带的user表
user=User.objects.create_user(username=name,password=pwd)
return redirect('/middle/') return render(request,'zhuce.html') def xiugaimima(request):
s=''
if request.method=='POST':
old_pwd=request.POST.get('oldpwd')
new_pwd=request.POST.get('newpwd')
aga_pwd=request.POST.get('agapwd')
username=request.user
user=User.objects.get(username=username) if user.check_password(old_pwd) and new_pwd==aga_pwd:
user.set_password(new_pwd)
user.save()
return redirect('/login/')
s='原密码不正确或新密码不一致' return render(request,'xiugaimima.html',{'s':s}) def zhuxiao(request): logout(request)
return redirect('/login/') def xieyi(request):
return render(request,'xieyi.html') def middle(request):
return render(request,'middle.html') def shujichaxun(request):
# if request.user.is_authenticated():
# import datetime,random
# # Booklist = []
# # for i in range(100):
# # Booklist.append(models.Book(name="book" + str(i),pubDate=datetime.datetime.now(),price=20 + i,publish_id=2))
# # models.Book.objects.bulk_create(Booklist)
# #
book_list=models.Book.objects.all()
paginator=Paginator(book_list,7) n=paginator.page_range
num=int(request.GET.get("n",1)) #因为get 得到的是字符串
book_list=paginator.page(num) # return render(request,"chaxun.html",{"book_list":book_list,"page_range":page_range,"num":int(num)})
return render(request,"chaxun.html",{"book_list":book_list,'n':n,'num':num}) #cookie实现代码
# res=request.COOKIES.get('login')
# if res=='asd':
# infoDict=models.Book.objects.all()
# return render(request,'chaxun.html',{'infoDict':infoDict})
# return redirect('/login/') # auth模块实现
# if request.user.is_authenticated():
# infoDict=models.Book.objects.all()
# return render(request,'chaxun.html',{'infoDict':infoDict})
# return redirect('/login/') #session实现代码
# res=request.session.get('asd',None)
# if res:
# infoDict=models.Book.objects.all()
# return render(request,'chaxun.html',{'infoDict':infoDict})
# return redirect('/login/') def shujishanchu(request,id):
#cookie实现代码
# res=request.COOKIES.get('login')
# if res=='asd':
# book_obj=models.Book.objects.get(id=id)
# auth_list=book_obj.author.all()
# book_obj.author.remove(*auth_list)
# book_obj.delete()
#
# return redirect('/shujichaxun/')
# return redirect('/login/') #auth模块实现
if request.user.is_authenticated():
book_obj=models.Book.objects.get(id=id)
auth_list=book_obj.author.all()
book_obj.author.remove(*auth_list)
book_obj.delete()
return redirect('/shujichaxun/')
return redirect('/login/') def shujitianjia(request):
#cookie代码实现
# res=request.COOKIES.get('login')
# if res=='asd': #auth模块实现
if request.user.is_authenticated():
if request.method=='POST':
name=request.POST.get('name')
auth=request.POST.getlist('aut')
date=request.POST.get('date')
pub=request.POST.get('pub')
price=request.POST.get('price')
pub_id=models.Publish.objects.filter(name=pub)[0].id
# pub_obj=models.Publish.objects.filter(name=pub)[0] book_obj=models.Book.objects.create(name=name,pubDate=date,price=price,publish_id=pub_id)
# book_obj=models.Book.objects.create(name=name,pubDate=date,price=price,publish=pub_obj)
auth_l=[]
for i in auth:
auth_l.append(models.Author.objects.get(name=i))
book_obj.author.add(*auth_l)
return redirect('/shujichaxun/') authList=models.Author.objects.all()
pubList=models.Publish.objects.all()
return render(request,'tianjia.html',{'authList':authList,'pubList':pubList})
return redirect('/login/') def shujibianji(request):
#cookie代码实现
# res=request.COOKIES.get('login')
# if res=='asd': #auth模块实现
if request.user.is_authenticated():
if request.method=="POST":
id=request.POST.get('id')
name=request.POST.get('name')
auth=request.POST.getlist('aut')
l=[]
for i in auth:
l.append(models.Author.objects.get(name=i))
pubdate=request.POST.get('date')
publish=request.POST.get('pub')
publish_id=models.Publish.objects.get(name=publish).id
price=request.POST.get('price')
book_obj=models.Book.objects.filter(id=id)
book_obj.update(name=name,pubDate=pubdate,price=price,publish_id=publish_id)
book_obj[0].author.clear()
book_obj[0].author.add(*l)
return redirect('/shujichaxun/') id=request.GET.get('id')
name=models.Book.objects.get(id=id).name
pubdate=models.Book.objects.get(id=id).pubDate
price=models.Book.objects.get(id=id).price
publish_obj=models.Book.objects.get(id=id).publish
publish=models.Publish.objects.all()
auth=models.Book.objects.get(id=id).author.all()
authlist=models.Author.objects.all()
return render(request,'bianji.html',{'id':id,'name':name,'pubdate':pubdate,'price':price,'publish':publish,'auth':auth,'authlist':authlist,'publish_obj':publish_obj})
return redirect('/login/') def zuozhechaxun(request):
#cookie 实现代码
# res=request.COOKIES.get('login')
# if res=='asd':
# authlist=models.Author.objects.all()
# return render(request,'zuozhe.html',{'authlist':authlist})
# return redirect('/login/') #auth模块实现
if request.user.is_authenticated():
authlist=models.Author.objects.all()
return render(request,'zuozhe.html',{'authlist':authlist})
return redirect('/login/') #session 实现代码
# res=request.session['asd']
# if res:
# authlist=models.Author.objects.all()
# del request.session['asd']
# return render(request,'zuozhe.html',{'authlist':authlist})
# return redirect('/login/') def chubanshechaxun(request):
#cookie 实现代码
# res=request.COOKIES.get('login')
# if res=='asd':
# publish=models.Publish.objects.all()
# return render(request,'chubanshe.html',{'publish':publish})
# return redirect('/login/') #auth模块实现
if request.user.is_authenticated():
publish=models.Publish.objects.all()
return render(request,'chubanshe.html',{'publish':publish})
return redirect('/login/') def test(request):
name='egon'
age=73
return render(request,'test.html',{'name':name,'age':age})

views.py

<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title></title>
<link rel="stylesheet" href="/static/bootstrap-3.3.7/css/bootstrap.min.css"/>
<script src="/static/jquery-3.2.1.js"></script>
<script src="/static/bootstrap-3.3.7/js/bootstrap.min.js"></script>
<style>
.ccc {
margin-top: 70px;
} .clc {
height: 30px;
margin-left: -15px;
text-align: center;
line-height: 30px;
border-radius: 5px;
} .menu {
margin-top: 7px; } .panel {
height: 580px;
} .c2 {
position: relative;
left: 200px;
top: 400px; {# border: 1px solid red;#} } .ccc .row .sidebar {
padding-top: 20px;
height: 600px;
background-color: #f5f5f5;
margin-top: -20px; }
table{
margin-top: -60px;
}
</style>
</head>
<body>
<nav class="navbar navbar-inverse navbar-fixed-top">
<div class="container-fluid">
<div class="navbar-header">
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar"
aria-expanded="false" aria-controls="navbar">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="">图书管理系统</a>
</div>
<div id="navbar" class="navbar-collapse collapse">
<ul class="nav navbar-nav navbar-right">
<li><a href="">设置</a></li>
<li><a href="">帮助</a></li>
<li><a href="/xiugaimima/">修改密码</a></li>
<li><a href="/zhuxiao/">注销</a></li>
<li><a href="">退出</a></li>
</ul>
<form class="navbar-form navbar-right">
<input type="text" class="form-control" placeholder="搜索...">
</form>
</div>
</div>
</nav>
<div class="container-fluid ccc">
<div class="row">
<div class="col-sm-3 col-md-2 sidebar">
<div class="menu">
<a href="/shujichaxun/" style="text-decoration: none"><div class="head bg-primary clc" id="clc1">书 籍 管 理</div></a>
<ul class="nav nav-sidebar hide" id="clc4">
<li class=""><a href="">Overview <span
class="sr-only">(current)</span></a>
</li>
<li><a href="">Reports</a></li>
<li><a href="">Analytics</a></li>
<li><a href="">Export</a></li>
</ul>
</div>
<div class="menu">
<a href="/zuozhechaxun/" style="text-decoration: none"><div class="head bg-primary clc" id="clc2">作 者 管 理</div></a> <ul class="nav nav-sidebar hide" id="clc5">
<li><a href="">Nav item</a></li>
<li><a href="">Nav item again</a></li>
<li><a href="">One more nav</a></li>
<li><a href="">Another nav item</a></li>
<li><a href="">More navigation</a></li>
</ul>
</div>
<div class="menu">
<a href="/chubanshechaxun/" style="text-decoration: none"><div class="head bg-primary clc" id="clc3">出版社管理</div></a> <ul class="nav nav-sidebar hide" id="clc6">
<li><a href="">Nav item again</a></li>
<li><a href="">One more nav</a></li>
<li><a href="">Another nav item</a></li>
</ul>
</div>
</div> {% block tt %}
<div class="col-sm-9 col-md-10 main">
<div class="panel panel-primary">
<div class="panel-heading">书籍信息</div>
<div class="panel-body">
<!-- Button trigger modal -->
<a href="/shujitianjia/"><button type="button" class="btn btn-primary" data-toggle="modal" data-target="#myModal">
添加
</button></a> <table class="table table-hover">
{# <tr>#}
<thead>
<th>序号</th>
<th>书名</th>
<th>作者</th>
<th>出版日期</th>
<th>出版社</th>
<th>价钱</th> </thead>
{# </tr>#}
{% block tbody %} {% endblock tbody %}
{% endblock tt %}
{# <div class="row c2">#}
{# <nav aria-label="Page navigation " class="pull-right c5">#}
{# <ul class="pagination">#}
{# <li>#}
{# <a href="#" aria-label="Previous">#}
{# <span aria-hidden="true">&laquo;</span>#}
{# </a>#}
{# </li>#}
{# <li><a href="#">1</a></li>#}
{# <li><a href="#">2</a></li>#}
{# <li><a href="#">3</a></li>#}
{# <li><a href="#">4</a></li>#}
{# <li><a href="#">5</a></li>#}
{# <li>#}
{# <a href="#" aria-label="Next">#}
{# <span aria-hidden="true">&raquo;</span>#}
{# </a>#}
{# </li>#}
{# </ul>#}
{# </nav>#}
{# </div>#}
</table>
</div>
</div>
</div>
</div> <div class="row">
<div class="col-md-6 col-md-offset-3" style="margin-top: -40px">
<hr/>
<div style="text-align: center">
<a href="">关于我们 |</a>
<a href="">联系我们 |</a>
<a href="">意见与反馈 |</a>
<a href="">友情链接 |</a>
<a href="">公告</a> <div>
<div style="font-size: 13px">
版权所有: Cool
</div>
</div>
</div> </div>
</div>
</div>
<script> {# $('.clc').on('click', function () {#}
{# $(this).parent().siblings().children('ul').addClass('hide');#}
{# $(this).next().toggleClass('hide');#}
{# })#} </script>
</body>
</html>

base.html

<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title></title>
<link rel="stylesheet" href="/static/bootstrap-3.3.7/css/bootstrap.min.css"/>
<script src="/static/jquery-3.2.1.js"></script>
<script src="/static/bootstrap-3.3.7/js/bootstrap.min.js"></script>
</head>
<body>
<div class="container">
<div class="row col-md-4 col-md-offset-4" style="margin-top: 100px">
{% block form %}
{% endblock form %}
</div>
</div> </body>
</html>

base2.html

{% extends 'base2.html' %}
{% block form %}
<form action="/shujibianji/" method="post">
{% csrf_token %}
<input type="hidden" name="id" value="{{ id }}"/> <div class="form-group">
<label for="usernaem">书名</label>
<input type="text" class="form-control item" id="usernaem" name="name" value="{{ name }}">
</div> <div class="form-group">
<label for="age">作者</label>
<select name="aut" class="form-control item" id="age" multiple>
{% for aut in authlist %} {% if aut in auth %}
<option selected value="{{ aut.name }}">{{ aut.name }}</option>
{% else %}
<option value="{{ aut.name }}">{{ aut.name }}</option>
{% endif %}
{% endfor %}
</select>
</div>
<div class="form-group">
<label for="gender">出版时间</label>
<input type="date" class="form-control item" id="gender" name="date" value="{{ pubdate|date:'Y-m-d' }}">
</div>
<div class="form-group">
<label for="publish">出版社</label>
<select name="pub" class="form-control item" id="publish">
{% for pub in publish %}
{% if pub == publish_obj %}
<option selected value="{{ pub.name }}">{{ pub.name }}</option>
{% else %}
<option value="{{ pub.name }}">{{ pub.name }}</option>
{% endif %}
{% endfor %}
</select>
</div>
<div class="form-group">
<label for="gender1">价格</label>
<input type="text" class="form-control item" id="gender1" name="price" value="{{ price }}">
</div>
<div class="pull-right"><a href="/shujichaxun/">
<button type="button" class="btn btn-default" data-dismiss="modal">取消</button>
</a>
<input type="submit" value="提交" class="btn btn-primary"/> </div>
</form>
{% endblock form %}

bianji.html

{% extends "base.html" %}
{% block tbody %}
<tbody> {% for book in book_list %}
<tr>
<td>{{ forloop.counter }}</td>
<td>{{ book.name }}</td>
<td>{% for item in book.author.all %}
/{{ item.name }}/
{% endfor %}
</td>
<td>{{ book.pubDate|date:'Y-m-d' }}</td>
<td>{{ book.publish.name }}</td>
<td>{{ book.price }}</td>
<td>
<div class="pull-left">
<a href="/shujishanchu/{{ book.id }}">
<button class="btn btn-danger">删除</button>
</a>
</div>
<a href="/shujibianji?id={{ book.id }}">
<button class="btn btn-success" style="margin-left: 5px">编辑</button>
</a>
</td> </tr>
{% endfor %} <div class="row c2">
<nav aria-label="Page navigation">
<ul class="pagination"> {% if book_list.has_previous %}
<li><a href="/shujichaxun?n={{ book_list.previous_page_number }}" aria-label="Previous">
<span aria-hidden="true">&laquo;</span>
</a></li>
{% else %}
<li class="disabled"><a href="" aria-label="Previous">
<span aria-hidden="true">&laquo;</span>
</a></li> {% endif %} {% for i in n %}
{% if num == i %}
<li class="active"><a href="/shujichaxun?n={{ i }}">{{ i }}</a></li>
{% else %}
<li><a href="/shujichaxun?n={{ i }}">{{ i }}</a></li>
{% endif %}
{% endfor %} {% if book_list.has_next %}
<li><a href="/shujichaxun?n={{ book_list.next_page_number }}#" aria-label="Next">
<span aria-hidden="true">&raquo;</span>
</a></li> {% else %}
<li class="disabled">
<a href="" aria-label="Next">
<span aria-hidden="true">&raquo;</span>
</a>
</li>
{% endif %} </ul>
</nav>
</div> {% endblock tbody %}

chaxun.html

{% extends 'base.html'%}
{% block tt %}
<div class="col-sm-9 col-md-10 main">
<div class="panel panel-primary">
<div class="panel-heading">出版社信息</div>
<div class="panel-body">
<!-- Button trigger modal -->
<a href="/chubanshetianjia/"><button type="button" class="btn btn-primary" data-toggle="modal" data-target="#myModal">
添加
</button></a> <table class="table table-hover">
{# <tr>#}
<thead>
<th>序号</th>
<th>社名</th>
<th>地址</th>
<th>详情</th>
</thead>
<tbody>
{% for pub in publish %}
<tr>
<td>{{ forloop.counter }}</td>
<td>{{ pub.name }}</td>
<td>{{ pub.pubdetail.add }}</td>
<td>{{ pub.pubdetail.content }}</td> <td>
<div class="pull-left">
<a href="/chubansheshanchu/{{ pub.id }}">
<button class="btn btn-danger" >删除</button>
</a>
</div>
<a href="/chubanshebianji/?id={{ pub.id }}">
<button class="btn btn-success" style="margin-left: 5px">编辑</button>
</a>
</td>
</tr>
</tbody>
{% endfor %}
{% endblock tt %}

chubanshe.html

<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<meta http-equiv="Refresh" content="3;URL=/login/">
{# <meta http-equiv="X-UA-Compatible" content="IE=edge">#}
<meta name="viewport" content="width=device-width, initial-scale=1">
<title></title>
<link rel="stylesheet" href="/static/bootstrap-3.3.7/css/bootstrap.min.css"/>
<script src="/static/jquery-3.2.1.js"></script>
<script src="/static/bootstrap-3.3.7/js/bootstrap.min.js"></script>
<link rel="stylesheet" href="/static/bootstrap-3.3.7/css/bootstrap.min.css"/>
<script src="/static/jquery-3.2.1.js"></script>
<script src="/static/bootstrap-3.3.7/js/bootstrap.min.js"></script>
<style>
body {
background-color: #cccccc;
} .container {
margin-top: 150px; } </style>
</head>
<body>
<div class="container">
<div class="row">
<div class="col-md-4 col-md-offset-4">
<h4>注册成功,将跳转到登陆页面<a href="/login/">点我直接跳转</a></h4>
</div>
</div>
</div>
</body>
</html>

middle.html

{% extends 'base2.html' %}
{% block form %}
<form action="/shujitianjia/" method="post">
{% csrf_token %}
<div class="form-group">
<label for="usernaem">书名</label>
<input type="text" class="form-control item" id="usernaem" name="name" placeholder="name">
</div> <div class="form-group">
<label for="age">作者</label>
<select name="aut" class="form-control item" id="age" multiple>
{% for aut in authList %}
<option value="{{ aut.name }}">{{ aut.name }}</option>
{% endfor %}
</select>
</div>
<div class="form-group">
<label for="gender">出版时间</label>
<input type="date" class="form-control item" id="gender" name="date">
</div>
<div class="form-group">
<label for="publish">出版社</label>
<select name="pub" class="form-control item" id="publish">
{% for pub in pubList %}
<option value="{{ pub.name }}">{{ pub.name }}</option>
{% endfor %}
</select>
</div>
<div class="form-group">
<label for="gender1">价格</label>
<input type="text" class="form-control item" id="gender1" name="price" placeholder="price">
</div>
<div class="pull-right"><a href="/shujichaxun/"><button type="button" class="btn btn-default" data-dismiss="modal">取消</button></a>
<input type="submit" value="提交" class="btn btn-primary"/>
</div>
</form>
{% endblock form %}

tianjia.html

<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title></title>
</head>
<body>
<h4>知道啥协议啊 ,你就同意...</h4>
</body>
</html>

xieyi.html

<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title></title>
<link rel="stylesheet" href="/static/bootstrap-3.3.7/css/bootstrap.min.css"/>
<script src="/static/jquery-3.2.1.js"></script>
<script src="/static/bootstrap-3.3.7/js/bootstrap.min.js"></script>
<style>
body {
background-color: #cccccc;
} .container {
margin-top: 150px; } </style>
</head>
<body>
<div class="container">
<div class="row">
<div class="col-md-4 col-md-offset-4"> <form class="form-horizontal" action="/xiugaimima/" method="post">
{% csrf_token %}
<h3 style="text-align: center">修改密码</h3>
<div class="form-group" style="margin-top: 30px">
<label for="inputEmail3" class="col-sm-3 control-label">原密码</label> <div class="col-sm-9" style="margin-left: -20px">
<input type="password" class="form-control" id="inputEmail3" placeholder="原密码" name="oldpwd">
</div>
</div>
<div class="form-group">
<label for="inputPassword3" class="col-sm-3 control-label">新密码</label> <div class="col-sm-9" style="margin-left: -20px">
<input type="password" class="form-control" id="inputPassword3" placeholder="新密码" name="newpwd">
</div>
</div>
<div class="form-group">
<label for="inputPassword4" class="col-sm-3 control-label">确认密码</label> <div class="col-sm-9" style="margin-left: -20px">
<input type="password" class="form-control" id="inputPassword4" placeholder="确认密码"
name="agapwd">
</div>
</div>
<div class="col-sm-10 col-sm-offset-2" style="color: red">{{ s }}</div>
<div class="form-group" style="margin-left: -40px">
<div class="col-sm-offset-3 col-sm-9">
<button type="submit" class="btn btn-primary">提交</button>
</div>
</div>
</form>
</div>
</div>
</div> </body>
</html>

xiugaimima.html

<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title></title>
<link rel="stylesheet" href="/static/bootstrap-3.3.7/css/bootstrap.min.css"/>
<script src="/static/jquery-3.2.1.js"></script>
<script src="/static/bootstrap-3.3.7/js/bootstrap.min.js"></script>
<style>
body {
background-color: #cccccc;
} .container {
margin-top: 150px; } </style>
</head>
<body>
<div class="container">
<div class="row">
<div class="col-md-4 col-md-offset-4"> <form action="/zhuce/" method="post">
{% csrf_token %}
<h3 style="text-align: center">请注册</h3>
<div class="form-group">
<label for="exampleInputEmail1">用户名</label>
<input type="text" class="form-control" id="exampleInputEmail1" placeholder="用户名" name="name">
</div>
<div class="form-group">
<label for="exampleInputPassword1">密码</label>
<input type="password" class="form-control" id="exampleInputPassword1" placeholder="密码" name="password">
</div>
<div class="checkbox">
<label>
<input type="checkbox" id="i1"> 我同意 <a href="/xieyi/">Cool公司注册协议</a>
</label>
</div>
<button type="submit" class="btn btn-primary disabled" id="i2">注册</button>
</form>
</div>
</div>
</div> <script>
{# 方式一 #}
$('#i1').on('change',function(){ {# 事件是 click 也可以 #}
$("#i2").toggleClass("disabled");
}) {# 方式二 #}
{#$('#aa').on('change',function(){#}
{# $("#btn").prop('disabled',!$(this).prop('checked'))#}
{# })#}
</script>
</body>
</html>

zhuce.html

{% extends 'base.html'%}
{% block tt %}
<div class="col-sm-9 col-md-10 main">
<div class="panel panel-primary">
<div class="panel-heading">作者信息</div>
<div class="panel-body">
<!-- Button trigger modal -->
<a href="/zuozhetianjia/"><button type="button" class="btn btn-primary" data-toggle="modal" data-target="#myModal">
添加
</button></a> <table class="table table-hover">
{# <tr>#}
<thead>
<th>序号</th>
<th>姓名</th>
<th>性别</th>
<th>电话</th>
<th>地址</th>
</thead>
<tbody>
{% for auth in authlist %}
<tr>
<td>{{ forloop.counter }}</td>
<td>{{ auth.name }}</td>
<td>{{ auth.authdetail.sex }}</td>
<td>{{ auth.authdetail.tel }}</td>
<td>{{ auth.authdetail.addr }}</td> <td>
<div class="pull-left">
<a href="/zuozheshanchu/{{ pub.id }}">
<button class="btn btn-danger" >删除</button>
</a>
</div>
<a href="/zuozhebianji/?id={{ pub.id }}">
<button class="btn btn-success" style="margin-left: 5px">编辑</button>
</a>
</td>
</tr>
</tbody>
{% endfor %}
{% endblock tt %}

zuozhe.html

<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title></title>
<link rel="stylesheet" href="/static/bootstrap-3.3.7/css/bootstrap.min.css"/>
<script src="/static/jquery-3.2.1.js"></script>
<script src="/static/bootstrap-3.3.7/js/bootstrap.min.js"></script>
<style>
body {
background-color: #cccccc;
} .container {
margin-top: 150px; } </style>
</head>
<body>
<div class="container">
<div class="row">
<div class="col-md-4 col-md-offset-4">
<form action="/login/" method="post">
{% csrf_token %}
<h3 style="text-align: center">请登录</h3>
<div class="form-group">
<label for="exampleInputEmail1" class="control-label">用户名</label>
<input type="text" class="form-control c1" id="exampleInputEmail1" name="name" placeholder="用户名">
{# <span class="help-block"></span>#}
</div>
<div class="form-group">
<label for="exampleInputPassword1" class="control-label">密码</label>
<input type="password" class="form-control c1" id="exampleInputPassword1" name="password" placeholder="密码">
{# <span class="help-block"></span>#}
</div>
<div style="color: red">{{ s }}</div>
<input class="btn btn-primary" type="submit" value="提交" id="sb"/>
<a href="/zhuce/"><input type="button" value="免费注册" class="btn btn-success pull-right"/></a>
<!--<button type="submit" class="btn btn-primary">Submit</button>-->
</form>
</div>
</div>
</div> {# 以下为jq代码 输入不能为空的提示 #} {#<script src="jquery-3.2.1.js"></script>#}
{# <script src="bootstrap-3.3.7/js/bootstrap.min.js"></script>#}
<!--<script src="abc.js">-->
{#<script>#}
{# $('.btn').on('click',function(){#}
{# $('form .form-group').removeClass('has-error');#}
{# $('form span').text('');#}
{# $('.c1').each(function(i,v){#}
{# if($(v).val().length===0){#}
{# $(v).parent().addClass('has-error');#}
{# console.log($(v).parent())#}
{# $(v).next().text($(v).prev().text()+'不能为空');#}
{# return false#}
{# }#}
{# })#}
{# })#} {#以下为jq自定义插件-输入不能为空#}
{#//$.kuozhan('#sb')#}
{#</script>#}
</body> </html>

登录校验.html

import pymysql

pymysql.install_as_MySQLdb()

__init__.py

"""
Django settings for xiangmu01 project. Generated by 'django-admin startproject' using Django 1.11.6. For more information on this file, see
https://docs.djangoproject.com/en/1.11/topics/settings/ For the full list of settings and their values, see
https://docs.djangoproject.com/en/1.11/ref/settings/
""" import os # Build paths inside the project like this: os.path.join(BASE_DIR, ...)
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) # Quick-start development settings - unsuitable for production
# See https://docs.djangoproject.com/en/1.11/howto/deployment/checklist/ # SECURITY WARNING: keep the secret key used in production secret!
SECRET_KEY = '#^b0%&v92lkm34l)&yrw345gqdw^&w_zq$o0bja71uf40#qz=w' # SECURITY WARNING: don't run with debug turned on in production!
DEBUG = True ALLOWED_HOSTS = [] # Application definition INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'app01',
] 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',
] ROOT_URLCONF = 'xiangmu01.urls' 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',
],
},
},
] WSGI_APPLICATION = 'xiangmu01.wsgi.application' # Database
# https://docs.djangoproject.com/en/1.11/ref/settings/#databases # DATABASES = {
# 'default': {
# 'ENGINE': 'django.db.backends.sqlite3',
# 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
# }
# } DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'xiangmu01', # 你的数据库名称
'USER': 'root', #你的数据库用户名
'PASSWORD': '963.', #你的数据库密码
'HOST': '', #你的数据库主机,留空默认为localhost
'PORT': '', #你的数据库端口
}
} # Password validation
# https://docs.djangoproject.com/en/1.11/ref/settings/#auth-password-validators AUTH_PASSWORD_VALIDATORS = [
{
'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator',
},
{
'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator',
},
{
'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator',
},
{
'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator',
},
] # Internationalization
# https://docs.djangoproject.com/en/1.11/topics/i18n/ LANGUAGE_CODE = 'en-us' TIME_ZONE = 'UTC' USE_I18N = True USE_L10N = True USE_TZ = True # Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/1.11/howto/static-files/ STATIC_URL = '/static/'
STATICFILES_DIRS = [
os.path.join(BASE_DIR, 'static'),
] TEMPLATE_DIRS = (
os.path.join(BASE_DIR, 'templates'),
'app01',
) LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'handlers': {
'console': {
'level': 'DEBUG',
'class': 'logging.StreamHandler',
},
},
'loggers': {
'django.db.backends': {
'handlers': ['console'],
'propagate': True,
'level': 'DEBUG',
},
}
}

settings.py

"""xiangmu01 URL Configuration

The `urlpatterns` list routes URLs to views. For more information please see:
https://docs.djangoproject.com/en/1.11/topics/http/urls/
Examples:
Function views
1. Add an import: from my_app import views
2. Add a URL to urlpatterns: url(r'^$', views.home, name='home')
Class-based views
1. Add an import: from other_app.views import Home
2. Add a URL to urlpatterns: url(r'^$', Home.as_view(), name='home')
Including another URLconf
1. Import the include() function: from django.conf.urls import url, include
2. Add a URL to urlpatterns: url(r'^blog/', include('blog.urls'))
"""
from django.conf.urls import url
from django.contrib import admin
from app01 import views
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^shujichaxun/', views.shujichaxun),
url(r'^chubanshechaxun/', views.chubanshechaxun),
url(r'^zuozhechaxun/', views.zuozhechaxun),
url(r'^shujishanchu/(\d+)', views.shujishanchu),
url(r'^shujitianjia/', views.shujitianjia),
url(r'^shujibianji/', views.shujibianji),
url(r'^login/', views.login),
url(r'^zhuce/', views.zhuce),
url(r'^middle/', views.middle),
url(r'^xieyi/', views.xieyi),
url(r'^xiugaimima/', views.xiugaimima),
url(r'^zhuxiao/', views.zhuxiao), ]

urls.py

bug:  注册的时候用户名一样的时候也可以注册   ///退出功能未实现   //分页盒子的布局

python-day73--django课上项目01的更多相关文章

  1. linux下配置python环境 django创建helloworld项目

    linux下配置python环境 1.linux下安装python3 a. 准备编译环境(环境如果不对的话,可能遇到各种问题,比如wget无法下载https链接的文件) yum groupinstal ...

  2. python框架Django实战商城项目之工程搭建

    项目说明 该电商项目类似于京东商城,主要模块有验证.用户.第三方登录.首页广告.商品.购物车.订单.支付以及后台管理系统. 项目开发模式采用前后端不分离的模式,为了提高搜索引擎排名,页面整体刷新采用j ...

  3. python框架Django实战商城项目之用户模块创建

    创建用户APP 整个项目会存在多个应用,需要存放在一个单独的文件包了,所以新建一个apps目录,管理所有子应用. 在apps包目录下穿件users应用 python ../../manage.py s ...

  4. Django 博客项目01 数据库设计与验证码校验+Ajax登录

    数据库设计 from django.db import models from django.contrib.auth.models import AbstractUser class UserInf ...

  5. Python和Django在Windows上的环境搭建

    作为一个.NET程序员,真心不喜欢Python以及PHP这种松散的语法.有人说,程序员应该多学几门语言,本想学习Java,无奈感觉Java的语法太啰嗦了.很多人都推荐Python,说它的语法简洁,执行 ...

  6. [Python] 建 Django 项目

    Python和Django的安装见这里:http://www.runoob.com/django/django-install.html 安装 Django 之后,您现在应该已经有了可用的管理工具 d ...

  7. Window环境下Python和Django的安装,以及项目的创建

    1.首先我们要下载python和Django,他们的下载地址如下 python地址:https://www.python.org/ Django地址:  https://www.djangoproje ...

  8. python三大主流web框架之Django安装、项目搭建

    这一篇我们将迎来python强大的web框架Django,相信大家都已经不陌生,本篇将介绍Django的安装及基础项目搭建,大神略过~ Django是需要我们手动pip安装的,首先我们来安装Djang ...

  9. python 的django项目复制方法

    python 的django项目复制方法 django_pyecharts_1修改为django_pyecharts_1_cs1.拷贝项目(确保原有项目是关闭状态下)2.粘贴项目并删除idea文件夹和 ...

随机推荐

  1. Docker:Deploy your app

    Prerequisites Install Docker. Get Docker Compose as described in Part 3 prerequisites. Get Docker Ma ...

  2. facebook api之Business Manager API

    Business-scoped Users - The new user is tied to a particular business and has permissions scoped to ...

  3. Kubernetes工作流之Pods二

    Init Containers This feature has exited beta in 1.6. Init Containers can be specified in the PodSpec ...

  4. UVa 11624 Fire!(着火了!)

    UVa 11624 - Fire!(着火了!) Time limit: 1.000 seconds Description - 题目描述 Joe works in a maze. Unfortunat ...

  5. excel 获取当前日期

    获取第几周(如第12周) ="第"&WEEKNUM(TODAY())&"周" 获取星期几(如星期一) =TEXT(TODAY(),"a ...

  6. 《剑指offer》第六十七题(把字符串转换成整数)

    // 面试题67:把字符串转换成整数 // 题目:请你写一个函数StrToInt,实现把字符串转换成整数这个功能.当然,不 // 能使用atoi或者其他类似的库函数. #include <ios ...

  7. opencv4.0 cuda10 编译速度太慢

    opencv4.0 cuda10 对比不带cuda的时候,编译速度太慢,主要卡在cuda的编译上. 参考http://answers.opencv.org/question/5090/why-open ...

  8. Linux学习3-yum安装java和Tomcat环境

    前言 linux上安装软件,可以用yum非常方便,不需要下载解压,一个指令就能用yum安装java和tomcat环境. 前面一篇已经实现在阿里云服务器上搭建一个禅道系统的网站,算是小有成就,但并不是每 ...

  9. 00-python-内置函数笔记

    01.enumerate()函数用于将一个可遍历的数据对象(如 列表.元组或字符串)组合为一个索引序列,同时列出数据和数据包下标,一般用在for循环中 for i, element in enumer ...

  10. 加速cin的技巧

     ios::sync_with_stdio(false); cin.tie(0);  把cin变得和scanf一样快.