Django期末模拟题

14 篇文章 0 订阅
2 篇文章 0 订阅

**

Django期末模拟题

整个项目下载
点击下载整个项目
**
题目
综合复习题:商品信息系统后台管理
一、语言和环境
1.实现语言:python。
2.环境要求:pycharm、 mysql。
3.使用技术:django2.2.3
二、实现功能
利用django所学的知识,实现管理员的登录和商品信息的显示和删除功能。
1.管理员登录login.html页效果显示,如下图1所示。

图1 管理员登录页面
如果输入账号和密码与数据库中一致则跳转到商品信息显示页面,否则提示错误信息。
2.商品信息显示页面goodList.html。效果如下图2所示。

图2 商品信息显示页面
页面加载时显示所有商品信息。按下”删除”按钮后则先提示当前选中行是否被删除,效果如下图3所示。

图3 删除确认效果
如果选“确定”则从数据库中删除当前选中的商品,并返回首页显示最新的所有商品信息。
三、数据库设计
1. 创建数据库(ProductDB)。
2. 创建用户表AdminInfo,结构见下表。
字段名 说明 字段类型 长度 备注
ID 编号 int 主键,自增
aname 管理员帐号 varchar 20 非空
apass 管理员密码 varchar 20 非空
state 状态 int 0表示启用,1表示禁用

3.创建商品表ProductInfo,结构见下表。
字段名 说明 字段类型 长度 备注
ID 商品编号 int 主键,自增
productName 商品名称 varchar 20 非空
addDate 上架日期 date 非空
price 商品单价 money 非空
productDesc 商品描述 varchar 20 非空

扩展功能:
1)在goodList.html页面上显示登录的账号名称,用session实现
2)如果商品信息很多,则在在goodList.html页面上分页显示数据

步骤

一、安装django
更改python默认镜像源:
在pycharm下方Terminal中执行下面命令:
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
指定下载版本:
pip install django==2.2.3
1、创建django项目
django-admin startproject 项目名称
例:django-admin startproject mysite
2、启动项目:
cd mysite
python manage.py runserver 端口号
二、创建应用
1、命令
python manage.py startapp 应用名
例: python manage.py startapp goods
2、激活应用
在项目的settings.py中INSTALLED_APPS配置项中加入应用的名称

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    "goods"
]

3.在goods应用下创建templates文件夹和static文件夹,在static文件夹下创建js文件夹(里面放入(jQuery-3.3.1.min.js),在templates文件夹下创建HTML页面(login.html和goodList.html))
static文件夹下载
数据库下载

login.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<h1 align="center">商品信息管理后台登录</h1>
<form action="" method="post" onsubmit="login();">
    <input type="hidden" name="csrfmiddlewaretoken" value="{{csrf_token}}"/>
  <div class="form-group" >
    <label for="inputEmail3" class="col-sm-2 control-label">管理员账号</label>
    <div class="col-sm-10">
      <input type="text" class="form-control" id="inputEmail3" placeholder="请输入账号" name="uname">
    </div>
  </div>
  <div class="form-group">
    <label for="inputPassword3" class="col-sm-2 control-label">管理员密码</label>
    <div class="col-sm-10">
      <input type="password" class="form-control" id="inputPassword3" placeholder="请输入密码" name="pwd">
    </div>
  </div>
  <div class="form-group">
    <div class="col-sm-offset-2 col-sm-10">
      <button type="submit" class="btn btn-default">登陆</button>
        <button type="submit" class="btn btn-default">取消</button>
    </div>
  </div>
</form>
<script>
    function login() {
        var uname=document.getElementsByName("uname")[0].value
        var pwd=document.getElementsByName("pwd")[0].value
        if (uname==""){
            alert("请输入账号!")
        }else if(pwd==""){
            alert("请输入密码!")
        }
    }
</script>
</body>
</html>

goodList.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <!-- 最新版本的 Bootstrap 核心 CSS 文件 -->
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/3.4.1/css/bootstrap.min.css" integrity="sha384-HSMxcRTRxnN+Bdg0JdbxYKrThecOKuH5zCYotlSAcp1+c8xmyTe9GYg1l9a69psu" crossorigin="anonymous">

<!-- 可选的 Bootstrap 主题文件(一般不用引入) -->
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/3.4.1/css/bootstrap-theme.min.css" integrity="sha384-6pzBo3FDv/PJ8r2KRkGHifhEocL+1X2rVCTTkUfGk7/0pbek5mMa1upzvWbrUbOZ" crossorigin="anonymous">

<!-- 最新的 Bootstrap 核心 JavaScript 文件 -->
<script src="https://stackpath.bootstrapcdn.com/bootstrap/3.4.1/js/bootstrap.min.js" integrity="sha384-aJ21OjlMXNL5UyIl/XNwTMqvzeRMZH2w8c5cRVpzpU8Y5bApTppSuUkhZXN0VxHd" crossorigin="anonymous"></script>
</head>
<body>
<table class="table table-striped">
    <h1 align="center">商品信息列表</h1>
<h3>欢迎您:{{ request.session.uname }}</h3>
    <tr>
        <td>商品编号</td>
        <td >商品名称</td>
        <td >上架日期</td>
        <td >商品单价</td>
        <td >商品描述</td>
        <td >是否删除</td>
    </tr>
    {% for i in books %}
        <tr>
            <td>{{i.ID}}</td>
            <td>{{i.productName}}</td>
            <td>{{i.addDate}}</td>
            <td>{{i.price}}</td>
            <td>{{i.productDesc}}</td>
            <td>
                <button type="button">
                    <a href="javascript:void(0);"  onclick= "delgood(this,{{i.ID}});">删除</a>
                </button>
            </td>
        </tr>
    {% endfor %}
</table>
<script src="/static/js/jQuery-3.3.1.min.js"></script>
<script>
    function delgood(obj,Id) {
            if(confirm("确认删除吗?")){
                $.ajax({
                    url:"/delete",
                    data:"data="+Id,
                    success:function (result) {
                        console.log(result)
                        if(result=="yes") {
                            $(obj).parent().parent().remove()
                            alert("删除成功!")
                            location.reload()
                        }else{
                            alert("删除失败!")
                    }
                }
            })
        }}

</script>
</body>
</html>

views.py

from django.shortcuts import render,redirect,HttpResponse
from django import http
from .models import *
# Create your views here.
def index(request):
    if request.method=="POST":
        name = request.POST.get("uname")
        pwd = request.POST.get("pwd")
        users = AdminInfo.objects.filter(aname=name, apass=pwd)
        if users:
            request.session["uname"]=name
            return redirect("/show")
        else:
            return redirect("/")
    return render(request,"login.html")
def delete(request):
    id=request.GET.get("data")
    print(id)
    result=ProductInfo.objects.get(ID=id)
    if result:
        result.delete()
        return HttpResponse("yes")

def show(request):
    goods = ProductInfo.objects.all()
    return render(request, "goodList.html", {"books": goods})

应用中的urls.py

from django.contrib import admin
from django.urls import path
from . import views
urlpatterns = [
    path('', views.index),
    path('delete',views.delete),
    path('show',views.show)
]

应用中的models.py

from django.db import models

# Create your models here.
class AdminInfo(models.Model):
    class Meta:
        db_table="AdminInfo" #描述原数据的内部类
    ID=models.AutoField(primary_key=True,db_column="ID")
    aname = models.CharField(max_length=20)
    apass = models.CharField(max_length=20,null=True)
    state = models.IntegerField(max_length=30,null=True)
    def __str__(self):#魔法函数,用于打印对象时,显示对象中的某个信息
        return self.aname

class ProductInfo(models.Model):
    class Meta:
        db_table="ProductInfo"
    ID=models.AutoField(primary_key=True,db_column="ID")
    productName=models.CharField(max_length=20,null=True)
    addDate=models.DateField(max_length=10)
    price=models.IntegerField(max_length=11)
    productDesc=models.CharField(max_length=20)
    def __str__(self):
        return self.productName

项目的urls.py

from django.contrib import admin
from django.urls import path,include

urlpatterns = [
    path('admin/', admin.site.urls),
    path('',include("goods.urls"))
]

项目的settings.py

SESSION_ENGINE='django.contrib.sessions.backends.cache'
DATABASES = {
    'default': {
        # 'ENGINE': 'django.db.backends.sqlite3',
        # 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
        'ENGINE': 'django.db.backends.mysql',
        'NAME':"sys",
        'HOST':"127.0.0.1",
        'POST':"3306",
        'USER':"root",
        'PASSWORD':"123456",
    }
}
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值