我只在models里面定义了一个图书表,比较容易
别忘设置数据库,,,这只是个最基本的,,只有增删改查,,大佬请绕道,
from django.db import models
class BookInfo(models.Model):
name = models.CharField(max_length=20)
author = models.CharField(max_length=20)
def __str__(self):
return self.name
接下来是urls部分
from django.conf.urls import url
from booktest import views
urlpatterns = [
url(r'^index$',views.index), # 首页
url(r'^add_book$',views.add_book),# 跳转到增加书页面
url(r'^add_check$',views.add_check), # 增加书
url(r'^delete_book(\d+)$',views.delete_book),# 删除书
url(r'^edit_check$',views.edit_check),# 编辑书
url(r'^edit_book$',views.edit_book),# 跳转到编辑页面
url(r'^login$',views.login),# 跳转到登陆页面
url(r'^login_check$',views.login_check),# 判断用户名和密码
url(r'^login_out$',views.login_out),# 退出
views部分
from django.shortcuts import render, redirect
from django.http import JsonResponse, HttpResponse, response
# @blocked_ips
from booktest import models
from booktest.models import BookInfo
def static_test(request):
return render(request,'booktest/static_test.html')
def index(request,):
books = BookInfo.objects.all()
return render(request,'booktest/index.html',{'books':books})
def add_book(request):
name = request.POST.get('name')
author = request.POST.get('author')
models.BookInfo.objects.create(name=name,author=author)
return redirect('/index')
def add_check(request):
return render(request,'booktest/add_books.html')
def delete_book(request,bid):
book = BookInfo.objects.get(id =bid)
book.delete()
return redirect('/index')
def edit_book(request):
aid = request.POST.get('id')
edit_obj = BookInfo.objects.get(id=aid)
new_name = request.POST.get('name')
new_author = request.POST.get('author')
edit_obj.name=new_name
edit_obj.author=new_author
edit_obj.save()
return redirect('/index')
def edit_check(request):
# 跳转到编辑页面
return render(request,'booktest/edit_check.html')
# def login(request):
# # 跳转到登陆页面
# # 获取 cookie usernmae
# if 'username' in request.COOKIES:
# username = request.COOKIES['username']
# else:
# username = ''
# return render(request,'booktest/login.html',{'username':username})
#
# def login_check(request):
# # 登录校验试图
#
# username = request.POST.get('username')
# password = request.POST.get('password')
# remember = request.POST.get('remember')
#
# if username == '123' and password == '123':
# # 判断是否记住用户名
# if remember == 'on':
# # 设置cookie 过期时间
# return
# return response
# else:
#
# return redirect('/login')
def login_out(request):
return HttpResponse('goodbye')
def login(request):
# 显示登陆页面 获取 cookie username
# 判断用户是否登录
if request.session.has_key('islogin'):
# 用户已登录 跳转到首页
return redirect('/index')
else:
if 'username' in request.COOKIES:
username =request.COOKIES['username']
else :
username =''
return render(request,'booktest/login.html',{'username':username})
def login_check(request):
# 登录校验试图
username =request.POST.get('username')
password = request.POST.get('password')
remember =request.POST.get('remember')
if username == 'smart' and password =='123' :
response = redirect('/index')
if remember =='on' :
# 设置cookie usernmae 过期时间为一周
response.set_cookie('username',username,max_age=7*24*3600)
# 记住用户登陆状态 z只要session中 islogin 就认为用户已登录 值不影响
request.session['islogin'] =True
return response
else:
return redirect('/index')
else:
return redirect('/login')
add_book.html
{% extends 'booktest/md.html' %}
{% block form %}
{# {% for i in ret %}#}
<form action="/add_book" method="post">
{% csrf_token %}
<p>
<span>书籍名称</span>
<br>
<input type="text" class="c2" name="name" placeholder="例:我的世界">
</p>
<p>
<span>作者名字</span>
<br>
<input type="text" class="c2" name="author" placeholder="例:曹雪芹">
</p>
<input type="submit" class="btn btn-success" id="d1" value="提交">
</form>
{# {% endfor %}#}
{% endblock %}
edit_book.html部分
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
{% block form %}
{# {% for i in ret %}#}
<form action="/edit_book" method="post">
{% csrf_token %}
<p>
<span>序号</span>
<br>
<input type="text" class="c2" name="id" placeholder="例:1">
</p>
<p>
<span>书籍名称</span>
<br>
<input type="text" class="c2" name="name" placeholder="例:我的世界">
</p>
<p>
<span>作者名字</span>
<br>
<input type="text" class="c2" name="author" placeholder="例:曹雪芹">
</p>
<input type="submit" class="btn btn-success" id="d1" value="提交">
</form>
{# {% endfor %}#}
{% endblock %}
</body>
</html>
index。html部分
{% load static %}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<link rel="stylesheet" href="{% static 'plugins/bootstrap.min.css' %}">
<style>
.c1 {
margin-left: 300px;
margin-right: 50px;
}
.op{
display: inline;
}
#d1{
background: url("{% static 'img/2B.jpg' %}");
background-repeat:no-repeat ;
background-size: cover;
!important;
}
</style>
</head>
<body id="d1">
<div class="container-fluid" >
<h2>查看书籍</h2>
<button class="btn btn-default" type="submit" style="float: right;margin-right: 50px" id="loginout">
</button>
<div class="c1">
<form action="/add_check">
<input type="submit" class="btn btn-primary" value="添加书籍">
</form>
<table class="table table-striped">
<thead>
<tr>
<th>编号</th>
<th>书籍名称</th>
<th>作者名</th>
</tr>
</thead>
<tbody class="info">
{% for i in books %}
<tr class="c2">
<td>{{ forloop.counter }}</td>
<td>{{ i.name }}</td>
<td>{{ i.author }}</td>
<td>
<form action="/edit_check" class="op">
<input type="submit" class="btn btn-warning" value="编辑">
</form>
<form action="/delete_book{{ i.id }}" class="op">
<input type="submit" class="btn btn-danger" value="删除">
</form>
</td>
</tr>
{% endfor %}
</tbody>
</table>
</div>
</div>
</body>
<form action="/login_out">
<input type="submit" class="btn btn-primary" value=退出>
</form>
<script src="{% static 'plugins/bootstrap.min.js' %}"></script>
<script>
$('#loginout').click(function () {
$.ajax({
url:'/loginout/',
type:'get',
success:function (res) {
if (res === 'ok'){
location.href='/login/'
}
}
})
})
</script>
</html>
login.html部分
<!DOCTYPE html>
<html lang="en">
<head>
</head>
<body>
<div id="login_box">
<h2>图书管理系统 </h2>
<div id="form">
<div id="input_box">
<form method="post" action="/login_check">
<input class="in" type="text" name="username" placeholder="Username" id="uname" value="{{ username }}"><br>
<input class="in" type="password" name="password" placeholder="Password" id="pwd"><br>
<input type="checkbox" name="remember">记住用户名<br>
<a href="http://127.0.0.1:8000/admin">管理员</a>
<input type="submit" value="提交"><br>
</form>
</div>
</div>
<p>
<span id="error" style="color:red;font-size: 15px"></span>
</p>
</div>
</body>
</html>