django项目
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple django==2.2.3
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple mysqlclient
项目:
django-admin startprojects app
cd app
python manage.py runserver 端口号
settings.py
SESSION_ENGINE = 'django.contrib.sessions.backends.cache' # session保存的引擎
DATABASES = {
'default': {
# 'ENGINE': 'django.db.backends.sqlite3',
# # 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
'ENGINE': 'django.db.backends.mysql',
'NAME': "hhdb",
'HOST':"127.0.0.1",
'PORT':"3306",
'USER':"root",
'PASSWORD':"123456",
}
}
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'tests',
]
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',
]
urls.py
from django.contrib import admin
from django.urls import path,include
urlpatterns = [
path('admin/', admin.site.urls),
path('',include("tests.urls")),
]
应用
urls.py
from django.contrib import admin
from django.urls import path
from . import views
urlpatterns = [
path('',views.index),
path('show',views.show),
path('deletecord',views.deletecord),
]
view.py
from django.shortcuts import render,redirect
from django.http import HttpResponse
from . import models
# Create your views here.
def index(request):
if request.method=="POST":
aname=request.POST.get("aname")
apass=request.POST.get("apass")
request.session["aname"]=aname
result=models.AdminInfo.objects.filter(aname=aname,apass=apass)
if result:
return redirect("/show")
else:
return render(request,"index.html",{"msg":"用户名或密码错误"})
return render(request,"index.html")
def show(request):
result=models.ProductInfo.objects.all()
return render(request,"show.html",{"result":result})
def deletecord(request):
id=request.GET.get("id")
print(id)
pro=models.ProductInfo.objects.get(ID=id)
pro.delete()
return HttpResponse("ok")
model.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(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)
addDate=models.DateField()
price=models.FloatField()
productDesc=models.CharField(max_length=20)
def __str__(self):
return self.productName
show.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<link rel="stylesheet" href="/static/css/bootstrap.css">
<link rel="stylesheet" href="/static/css/bootstrap-theme.css">
<script src="/static/js/bootstrap.js"></script>
</head>
<body>
欢迎您:{{ request.session.uname }}
<hr/>
<table class="table tab-content">
<tr>
<th>商品编号</th>
<th>商品名称</th>
<th>上架日期</th>
<th>商品单价</th>
<th>商品描述</th>
<th>编辑操作</th>
</tr>
{% for res in result %}
<tr>
<td>{{ res.ID }}</td>
<td>{{ res.productName }}</td>
<td>{{ res.addDate}}</td>
<td>{{ res.price }}</td>
<td>{{ res.productDesc }}</td>
<td>
<a href="javascript:void(0)" onclick=" deletecord(this,{{ res.ID }}) " class="btn btn-danger">删除</a>
</td>
</tr>
{% endfor %}
<script src="static/js/jquery-3.6.0.js"></script>
<script>
function deletecord(obj,id) {
console.log(id)
if(confirm("确认删除吗?")){
$.ajax({
url:"/deletecord",
data:"id="+id,
//回调函数:当服务器响应内容之后,自动调用的函数
success:function (result) {
//请求成功之后自动执行的函数
console.log(result) //result是py文件(服务器)响应的内容
if(result=="ok"){
//将某个a标签所在的行用jquery的代码删除
$(obj).parent().parent().remove()
alert("删除成功!")
}else{
alert("删除失败!")
}
}
})
}}
</script>
</table>
</body>
</html>
index.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>商品信息管理后台登录</title>
<link rel="stylesheet" href="/static/css/bootstrap.css">
<link rel="stylesheet" href="/static/css/bootstrap-theme.css">
<script src="/static/js/bootstrap.js"></script>
</head>
<body>
<h1 align="center">商品信息管理后台登录</h1>
<br/>
<form method="post" onsubmit="return check()">
<input type="hidden" name="csrfmiddlewaretoken" value="{{ csrf_token }}">
用户名:<input class="form-control" type="text" placeholder="请输入用户名" id="aname" name="aname" ><br/>
密 码: <input class="form-control" type="password" placeholder="请输入密码" id="apass" name="apass" ><br/>
<input class="btn btn-default" type="submit" value="登录">
<input class="btn btn-default" type="reset" value="取消">
</form>
<script>
function check() {
var aname=document.getElementById("aname").value
var apass=document.getElementById("apass").value
if(aname==""|apass==""){
alert("失败啦亲")
return false
}else{
alert("成功啦亲")
return true
}
}
</script>
</body>
</html>