1,更改python默认镜像源: 在pycharm下方Terminal中执行下面命令:
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
2,pip install django==2.2.3
3,django-admin startproject mysite
4,cd mysite
5,python manage.py startapp books
6,python manage.py runserver
7,选择mysite下的urls项目
from django.contrib import admin from django.urls import path,include urlpatterns = [ path('admin/', admin.site.urls), path('', include("books.urls")), ]
8,进入settings文件
DATABASES = { 'default': { # 'ENGINE': 'django.db.backends.sqlite3', # 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'), 'ENGINE': 'django.db.backends.mysql', 'NAME': "productdb", 'HOST':"127.0.0.1", 'PORT':"3306", 'USER':"root", 'PASSWORD':"123456", } }
SESSION_ENGINE = 'django.contrib.sessions.backends.cache' # session保存的引擎
9,views.py
from django.shortcuts import render,redirect
from django.http import HttpResponse
from django.conf import settings
from datetime import datetime
from .models import *
import os
# Create your views here.
def index(request):
if request.method=="POST":
uname=request.POST.get("uname")
pwd=request.POST.get("pwd")
result=AdminInfo.objects.filter(aname=uname,apass=pwd)
if result:
request.session["uname"]=uname
return redirect("/shangping")
return render(request,"login.html")
def shangp(request):
goods=ProductInfo.objects.all()
return render(request,"goodList.html",{"rows":goods})
def delect(request):
id = request.GET.get("data")
result=ProductInfo.objects.filter(ID=id)
print(result)
if result:
result.delete()
return HttpResponse("yes")
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)
state=models.IntegerField(max_length=11)
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)
addDate=models.DateField()
productDesc=models.CharField(max_length=20)
def __str__(self):
return self.productName
urls.py
from django.contrib import admin from django.urls import path from . import views urlpatterns = [ path('show', views.index), path('shangping', views.shangp), path('delete', views.delect), ]
goodlist.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<div>
<!-- 最新版本的 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>
</div>
</head>
<body>
<h1>商品信息列表</h1><br/>
欢迎你:{{ request.session.uname }}
<div >
<table class="table table-hover">
<tr>
<td class="active">商品编号</td>
<td class="success">商品名称</td>
<td class="warning">上架日期</td>
<td class="danger">商品单价</td>
<td class="success">商品描述</td>
<td class="active">操作</td>
</tr>
{% for row in rows %}
<tr>
<td>{{ row.ID }}</td>
<td>{{ row.productName }}</td>
<td>{{ row.addDate }}</td>
<td>{{ row.price }}</td>
<td>{{ row.productDesc }}</td>
<td>
<button type="button" class="btn btn-danger">
<a href="javascript:void(0);" onclick=" delrecord(this,{{ row.ID }}) ">删除</a>
</button>
</td>
</tr>
{% endfor %}
</table>
</div>
<div>
<script src="/static/js/jQuery-3.3.1.min.js"></script>
<script>
function delrecord(obj,id) {
if(confirm("确认删除吗?")){
$.ajax({
url:"/delete",
data:"data="+id,
//回调函数:当服务器响应内容之后,自动调用的函数
success:function (result) {
//请求成功之后自动执行的函数
console.log(result) //result是py文件(服务器)响应的内容
if(result=="yes"){
//将某个a标签所在的行用jquery的代码删除
$(obj).parent().parent().remove()
alert("删除成功!")
}else{
alert("删除失败!")
}
}
})
}}
</script>
</div>
</body>
</html>
login.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<div>
<!-- 最新版本的 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>
</div>
</head>
<style>
</style>
<body>
<h1>商品信息管理后台登录</h1>
<form class="form-horizontal" action="/show" method="post" >
<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" name="uname" placeholder="请输入用户名">
</div>
</div>
<div class="form-group">
<label for="inputPassword3" class="col-sm-2 control-label">密码</label>
<div class="col-sm-10">
<input type="password" name="pwd" placeholder="请输入密码">
</div>
</div>
<div class="form-group">
<div class="col-sm-offset-2 col-sm-10">
<button type="submit" class="btn btn-default">提交</button>
<a href="/down">
<button type="button" class="btn btn-default" >取消</button>
</a>
</div>
</div>
</form>
<script>
function check() {
var aname=document.getElementById("uname").value
var apass=document.getElementById("pwd").value
if(aname==""|apass==""){
alert("失败啦亲")
return false
}else{
alert("成功啦亲")
return true
}
}
</script>
</body>
</html>