广告
返回顶部
首页 > 资讯 > 后端开发 > Python >python终极篇 --- django
  • 851
分享到

python终极篇 --- django

pythondjango 2023-01-30 22:01:26 851人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

周末没事自己写了个班级管理系统,虽然简单,但也算个前期学习的总结吧 from Django.db import models # Create your models here. class Banji(models.Model)

周末没事自己写了个班级管理系统,虽然简单,但也算个前期学习总结

from Django.db import models

# Create your models here.
class Banji(models.Model):
    grade = models.CharField(max_length=32,unique=True)


class Student(models.Model):
    name = models.CharField(max_length=32,unique=True)
    banji = models.ForeignKey(to="Banji",on_delete=models.CASCADE)

class Teacher(models.Model):
    name = models.CharField(max_length=32,unique=True)
    banji = models.ManyToManyField("Banji")
models
"""class_crm URL Configuration

The `urlpatterns` list routes URLs to views. For more infORMation please see:
    https://docs.djanGoproject.com/en/1.11/topics/Http/urls/
Examples:
Function views
    1. Add an import:  from my_app import views
    2. Add a URL to urlpatterns:  url(r'^$', views.home, name='home')
Class-based views
    1. Add an import:  from other_app.views import Home
    2. Add a URL to urlpatterns:  url(r'^$', Home.as_view(), name='home')
Including another URLconf
    1. Import the include() function: from django.conf.urls import url, include
    2. Add a URL to urlpatterns:  url(r'^blog/', include('blog.urls'))
"""
from django.conf.urls import url
from django.contrib import admin

from app01 import views
urlpatterns = [
    url(r'^admin/', admin.site.urls),
    # 班级
    url(r'^banji_list/', views.banji_list),
    url(r'^add_banji/', views.add_banji),
    url(r'^del_banji/', views.del_banji),
    url(r'^edit_banji/', views.edit_banji),


    url(r'^student_list/', views.student_list),
    url(r'^add_student/', views.add_student),
    url(r'^del_student/', views.del_student),
    url(r'^edit_student/', views.edit_student),


    url(r'^teacher_list/', views.teacher_list),
    url(r'^add_teacher/', views.add_teacher),
    url(r'^del_teacher/', views.del_teacher),
    url(r'^edit_teacher/', views.edit_teacher),
]
urls
from django.shortcuts import render,HttpResponse,redirect
from app01 import models
# Create your views here.
def banji_list(request):
    print(111)
    banji_list = models.Banji.objects.all().order_by("id")
    print(222)
    print(banji_list)
    return render(request,"banji_list.html",{"banji_list":banji_list})


def add_banji(request):
    if request.method == "POST":
        name = request.POST.get("new_name")
        if not name:
            return render(request,"add_banji.html",{"err_name":name,"err_msg":"不能为空"})
        add_obj = models.Banji.objects.filter(grade=name)
        if add_obj:
            return render(request,"add_banji.html",{"err_name":name,"err_msg":"已存在"})
        models.Banji.objects.create(grade=name)
        return redirect("/banji_list/")
    return render(request,"add_banji.html")

def del_banji(request):
    del_id = request.GET.get("id")
    del_list = models.Banji.objects.filter(id=del_id)
    del_list.delete()
    return redirect("/banji_list/")

def edit_banji(request):
    edit_id = request.GET.get("id")
    edit_obj = models.Banji.objects.get(id=edit_id)
    if request.method == "POST":
        name = request.POST.get("new_name")
        if not name:
            return render(request, "edit_banji.html", {"edit_obj": edit_obj,"err_msg":"不能为空"})
        mod_obj = models.Banji.objects.filter(grade=name)
        if mod_obj:
            return render(request, "edit_banji.html", {"edit_obj": edit_obj,"err_msg":"重复了"})
        if edit_obj and name and not mod_obj:
            edit_obj.grade = name
            edit_obj.save()
            return redirect("/banji_list/")
    if edit_obj:
        return render(request,"edit_banji.html",{"edit_obj":edit_obj})
    return HttpResponse("不存在!!!")


# 学生管理
def student_list(request):
    student_list = models.Student.objects.all().order_by("id")
    return render(request,"student_list.html",{"student_list":student_list})

def add_student(request):
    banji_list = models.Banji.objects.all()
    if request.method == "POST":
        name = request.POST.get("new_name")
        if not name:
            return render(request, "add_student.html", {"banji_list": banji_list,"err_name":name,"err_msg":"不能为空"})
        add_obj = models.Student.objects.filter(name=name)
        if add_obj:
            return render(request, "add_student.html", {"banji_list": banji_list,"err_name":name,"err_msg":"此学生已存在"})
        banji_id = request.POST.get("banji_id")
        models.Student.objects.create(name=name,banji_id=banji_id)
        return redirect("/student_list/")
    return render(request,"add_student.html",{"banji_list":banji_list})

def del_student(request):
    del_id = request.GET.get("id")
    del_obj = models.Student.objects.get(id=del_id)
    del_obj.delete()
    return redirect("/student_list/")

def edit_student(request):
    edit_id = request.GET.get("id")
    edit_obj = models.Student.objects.filter(id=edit_id)
    banji_list = models.Banji.objects.all()

    if request.method == "POST":
        name = request.POST.get("new_name")
        banji_id = request.POST.get("banji_id")
        if not name:
            return render(request, "edit_student.html", {"edit_obj": edit_obj, "banji_list": banji_list,"err_msg":"不能为空"})
        edit_obj = edit_obj[0]
        edit_obj.name = name
        edit_obj.banji_id = banji_id
        edit_obj.save()
        return redirect("/student_list/")
    return render(request,"edit_student.html",{"edit_obj":edit_obj[0],"banji_list":banji_list})



def teacher_list(request):
    teacher_list = models.Teacher.objects.all()
    return render(request,"teacher_list.html",{"teacher_list":teacher_list})

def add_teacher(request):
    banji_list = models.Banji.objects.all()
    if request.method == "POST":
        name = request.POST.get("new_name")
        add_obj = models.Teacher.objects.filter(name=name)
        if add_obj:
            return render(request, "add_teacher.html", {"banji_list": banji_list,"err_name":name,"err_msg":"已存在"})
        banji_id = request.POST.getlist("banji_id")
        new_tea = models.Teacher.objects.create(name=name)
        new_tea.banji.set(banji_id)
        return redirect("/teacher_list/")
    return render(request,"add_teacher.html",{"banji_list":banji_list})

def del_teacher(request):
    del_id = request.GET.get("id")
    del_obj = models.Teacher.objects.filter(id=del_id)
    del_obj.delete()
    return redirect("/teacher_list/")

def edit_teacher(request):
    edit_id = request.GET.get("id")
    edit_obj = models.Teacher.objects.filter(id=edit_id)
    banji_list = models.Banji.objects.all()
    if request.method == "POST":
        name = request.POST.get("new_name")
        banji_id = request.POST.getlist("banji_id")
        edit_obj = edit_obj[0]
        edit_obj.name = name
        edit_obj.save()
        edit_obj.banji.set(banji_id)
        return redirect("/teacher_list/")
    return render(request,"edit_teacher.html",{"banji_list":banji_list,"edit_obj":edit_obj[0]})
Views

数据库表关系如下:

总结一些方法:

get为获取单个对象,找不到会报错,所以如果用的话最好try一下

filter获取的是query set集合,也可以理解为对象列表

getlist获取所有

HttpResponse('字符串')   ——》 页面显示字符串的内容
  render(request,'模板的名字',{k1:v1})  ——》 整个HTML文件返回给浏览器
  redirect('/index/')    跳转  重定向  响应头  location:/index/

 

--结束END--

本文标题: python终极篇 --- django

本文链接: https://www.lsjlt.com/news/179545.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • python终极篇 --- django
    周末没事自己写了个班级管理系统,虽然简单,但也算个前期学习的总结吧 from django.db import models # Create your models here. class Banji(models.Model)...
    99+
    2023-01-30
    python django
  • python终极篇 ---django
                                                模板系统                                                1. MVC和MTV框架 ...
    99+
    2023-01-30
    python django
  • python 终极篇 --- djang
    一个视图函数(类),简称视图,是一个简单的Python 函数(类),它接受Web请求并且返回Web响应。 响应可以是一张网页的HTML内容,一个重定向,一个404错误,一个XML文档,或者一张图片。 无论视图本身包含什么逻辑,都要返回响...
    99+
    2023-01-30
    python djang
  • python 终极篇 cookie与se
    (1)cookie与session---------->>>>>>>>>>>>>>>>>>>>.>>&g...
    99+
    2023-01-30
    python cookie se
  • python 终级篇 django --
                                       一般操作                                                          必会的13条               ...
    99+
    2023-01-30
    python 终级篇 django
  • Python实现代码统计工具(终极篇)
    本文对于先前系列文章中实现的C/Python代码统计工具(CPLineCounter),通过C扩展接口重写核心算法加以优化,并与网上常见的统计工具做对比。实测表明,CPLineCounter在统计精度和性能...
    99+
    2022-06-04
    代码 工具 Python
  • 三战MySQL数据库【终极篇】
    MYSQL入门系列——第三篇 每篇前言:0.准备工作:1.表结构修改:(关键字alter)2.约束条件:(1)默认约束(default):(2)非空约束(not null):(3)唯一约束(u...
    99+
    2023-09-03
    mysql 六大约束条件 三大表关系 视图和索引 mysql正则
  • Android内存泄漏终极解决篇(上)
    一、概述 在Android的开发中,经常听到“内存泄漏”这个词。“内存泄漏”就是一个对象已经不需要再使用了,但是因为其它的对象持有该对象的引用,导致它的内存不能被回收。“内存泄...
    99+
    2022-06-06
    android内存泄漏 Android
  • Android内存泄漏终极解决篇(下)
    一、概述 在 Android内存泄漏终极解决篇(上)中我们介绍了如何检查一个App是否存在内存泄漏的问题,本篇将总结典型的内存泄漏的代码,并给出对应的解决方案。内存泄漏的主要问...
    99+
    2022-06-06
    android内存泄漏 Android
  • Java面试必问之ThreadLocal终极篇分享
    目录前言 ThreadLocal是什么 ThreadLoalMap hash冲突 内存泄露 如何避免内存泄露 总结前言 在面试环节中,考察"ThreadLocal"也是面试官的家常...
    99+
    2022-11-12
  • IDE:PHP和Django开发技术的终极工具?
    作为一名开发者,你是否曾经为了寻找一个优秀的IDE而苦恼过?特别是在处理大型项目时,一个好的IDE可以让你事半功倍。本文将讨论两种主流的开发技术:PHP和Django,并探讨它们的终极IDE。 PHP是一种强大的开发语言,用于构建动态We...
    99+
    2023-08-06
    django 开发技术 ide
  • 终极版Python学习教程:一篇文章讲清楚Python虚拟环境
    我在之前写过一篇Python学习教程,说过新手往往没有注意环境隔离,导致Python项目包与包之间冲突。并且Python2与3代码执行有问题等等。鉴于此我决定今天的Python学习教程给大家聊聊关于Python环境隔离问题以及如何进行隔离。...
    99+
    2023-06-02
  • 异步编程的终极指南:Java、Django和Spring如何选择?
    异步编程是现代软件开发中的一个重要概念,它可以帮助开发人员提高应用程序的性能和可伸缩性。Java、Django和Spring都提供了异步编程的支持,本篇文章将介绍如何选择适合你的项目的异步编程框架。 Java Java是一种流行的编程语言,...
    99+
    2023-10-09
    django spring 异步编程
  • Django 缓存的终极解决方案:结合 Go 存储技术!
    Django 是一个流行的 Python Web 框架。在开发 Web 应用程序时,缓存是提高性能的关键组成部分之一。Django 提供了多种缓存选项,包括内存缓存、数据库缓存、文件缓存等。但是这些缓存方案都存在一些问题,比如内存缓存可能...
    99+
    2023-11-08
    存储 django 缓存
  • Windows Server 2003 SP2 更新补丁汇总终极版 2015年7月篇
    微软在2015年7月推出14枚适用于Windows Server 2003的更新补丁后,终究还是结束了对其的扩展支持。一如往常,为方便 Windows Server 2003用户高效、快速为自己的操作系统打上最新补丁,下...
    99+
    2023-06-17
    终极版 2015年7月
  • 打飞机游戏终极BOSS Android实战打飞机游戏完结篇
    本文实例为大家分享了打飞机游戏BOSS以及胜利失败页面设计的Android代码,具体内容如下 修改子弹类: public class Bullet { //子弹图片资源 ...
    99+
    2022-06-06
    Android
  • Python语音识别终极指北,没错,就是
    整合了语音识别的 Python 程序提供了其他技术无法比拟的交互性和可访问性。最重要的是,在 Python 程序中实现语音识别非常简单。阅读本指南,你就将会了解。你将学到:•语音识别的工作原理;•PyPI 支持哪些软件包; •如何安装和使用...
    99+
    2023-01-31
    语音识别 Python
  • windows下安装Python和pip终极图文教程
    本文希望提供傻瓜式的教程,能够令读者成功安装Python和pip。   第一步,我们先来安装Python,博主选择的版本是最新的3.4.2版本。windows下面的Python安装一般是通过软件安装包安装而...
    99+
    2022-06-04
    图文 教程 windows
  • 一篇文章带你自学python Django
    目录1. Django简介Django是什么?Django前景Django框架核心2. 设计模式MVT模式3. 开发环境简介4.创建虚拟环境4.1.首先安装管理环境的包以及虚拟环境包...
    99+
    2022-11-12
  • 使用终极 GUI 框架 NiceGUI 提升你的 Python 应用程序
    介绍 随着机器学习和深度学习网站应用程序的快速增长,开发人员一直在寻找新的 Web 框架,以便更轻松地构建这些网站应用程序。 数据科学应用程序的普及程度已经上升,因此新的框架也在增加。开发人员创建了许多新的框架,这些框架被证明对构建这些...
    99+
    2023-08-31
    python 开发语言
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作