一个django项目

本文详细介绍了如何创建一个Django项目,从更改Python默认镜像源到启动服务器,包括安装Django,创建项目和应用,配置urls、settings,并涉及到views.py, models.py, urls.py以及相关HTML文件的编辑。" 115353421,7690337,Java:Missing required view异常处理,"['Java异常', '编程错误', 'Android开发', '数据绑定', '自定义组件']
摘要由CSDN通过智能技术生成

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>

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值