栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

不分离的python和html操作

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

不分离的python和html操作

创建django项目

在小黑框

django-admin startproject 项目名

把项目拖到python文件中

创建子应用
python manage.py startapp 子应用名
配置setting
注册子应用
INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'myapp',
]
注册模板页面
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',
            ],
        },
    },
]
数据库链接
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'HOST':'localhost',
        'PORT':3306,
        'USER':'root',
        'PASSWORD':'123456789',
        'NAME':'day7hdk2',
    }
}
语言
LANGUAGE_CODE = 'zh-Hans'
时区
TIME_ZONE = 'Asia/Shanghai'
python中安装数据库 init
import pymysql
pymysql.install_as_MySQLdb()
创建模型类
from django.db import models

# Create your models here.
# 5.	新建一个干净项目,项目名为day7+姓名首拼+2
# 6.	编写种类Kind模型类,由种类名称kind_name组成,并自己添加3条数据
# 7.	编写商品Good模型类,商品名good_name、单价price、数量num、种类kind(外键),并自己添加测试数据
class Kind(models.Model):
    kind_name=models.CharField(max_length=10,verbose_name='种类名称')
    class Meta:
        verbose_name='种类表'
        verbose_name_plural=verbose_name
        db_table='kind'
    def __str__(self):
        return self.kind_name
class Good(models.Model):
    good_name=models.CharField(max_length=10,verbose_name='商品名')
    price=models.IntegerField(default=0,verbose_name='单价')
    num=models.IntegerField(default=0,verbose_name='数量')
    kind=models.ForeignKey(to=Kind,on_delete=models.CASCADE,verbose_name='种类')
    class Meta:
        verbose_name='商品表'
        verbose_name_plural=verbose_name
        db_table='good'
    def __str__(self):
        return self.good_name
在admin中注册模型类
from django.contrib import admin
from myapp.models import Kind
from myapp.models import Good
# Register your models here.
admin.site.register(Kind)
admin.site.register(Good)
迁移文件
python manage.py makemigrations
python manage.py migrate
创建超级用户
python manage.py createsuperuser
在子应用中新建urls
from django.contrib import admin
from django.urls import path,include
from myapp import urls
urlpatterns = [
    path('admin/', admin.site.urls),
    path('',include(urls))
]
from django.urls import path
from myapp import views
urlpatterns = [
    path('kind/',views.kind.as_view()),
    path('good/',views.good.as_view()),
    path('add/',views.add.as_view()),
    path('del//',views.delete.as_view()),
    path('select/',views.select.as_view()),
    path('update/',views.update.as_view()),
]
然后在View中输出
from django.shortcuts import render,redirect
from django.views import View
from django.http import HttpResponse
from myapp.models import Kind
from myapp.models import Good
# Create your views here.
# 主页面功能:
# 1.展示所有的种类信息
class kind(View):
    def get(self,request):
        data=Kind.objects.all()
        return render(request,'kind.html',{'kind':data})
# 2.可以搜索商品信息
class select(View):
    def get(self,request):
        name=request.GET.get('good_name')
        try:
            data=Good.objects.get(good_name__contains=name)
        except Exception as e:
            print(e)
            return HttpResponse("数据查询失败")
        return HttpResponse(f"{data.good_name},{data.price},{data.num},{data.kind}")

# 3.可以新增商品信息
class add(View):
    def post(self,request):
        good_name=request.POST.get('good_name')
        price = request.POST.get('price')
        num = request.POST.get('num')
        kind = request.POST.get('kind')
        try:
            Good.objects.create(
                good_name=good_name,
                price=price,
                num=num,
                # 注意这是外键需要用id
                kind_id=kind,
            )
        except Exception as e:
            print(e)
            return HttpResponse("数据添加失败")
        return redirect('/kind/')
# 4.点击种类名可以进入到指定种类下,展示对应种类的商品信息,并按照价格排序
class good(View):
    def get(self,request,id):
        data=Good.objects.filter(kind_id=id)
        return render(request,'good.html',{'good':data})
# 商品信息页面功能:
# 1. 商品信息的修改
class update(View):
    def get(self,request,id):
        data=Good.objects.get(id=id)
        return render(request,'index.html',{'goods':data})
    def post(self, request, id):
        good_name = request.POST.get('good_name')
        price = request.POST.get('price')
        num = request.POST.get('num')
        kind = request.POST.get('kind')
        try:
            Good.objects.filter(id=id).update(
                good_name=good_name,
                price=price,
                num=num,
                kind_id=kind,
            )
        except Exception as e:
            print(e)
            return HttpResponse("修改失败")
        return redirect('/kind/')
# 2. 商品信息的删除
class delete(View):
    def get(self,request,id):
        Good.objects.filter(id=id).delete()
        return redirect('/kind/')
view中涉及的good.html页面



    
    Title



    {% for foo in good %}
    
    {% endfor %}
编号 商品名 单价 数量 种类 操作
{{ foo.id }} {{ foo.good_name }} {{ foo.price }} {{ foo.num }} {{ foo.kind }} 删除 修改
商品:
单价:
数量:
种类:

商品名称:
view中涉及的kind.html页面



    
    Title



    {% for foo in kind %}
        
    {% endfor %}

编号 种类名称
{{ foo.id }} {{ foo.kind_name }}
view中涉及的index.html页面



    
    Title


编号: 商品名: 单价: 数量: 种类:
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/942504.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号