python-day73--django课上项目01
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)
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})
<!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">«</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">»</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>
<!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>
{% 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 %}
{% 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">«</span> </a></li> {% else %} <li class="disabled"><a href="" aria-label="Previous"> <span aria-hidden="true">«</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">»</span> </a></li> {% else %} <li class="disabled"> <a href="" aria-label="Next"> <span aria-hidden="true">»</span> </a> </li> {% endif %} </ul> </nav> </div> {% endblock tbody %}
{% 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 %}
<!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>
{% 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 %}
<!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>
<!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>
<!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>
{% 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 %}
<!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>
import pymysql pymysql.install_as_MySQLdb()
""" 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': '3306', #你的数据库端口 } } # 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', }, } }
"""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), ]
bug: 注册的时候用户名一样的时候也可以注册 ///退出功能未实现 //分页盒子的布局