python+django+sql实现简单的数据信息管理系统

这篇具有很好参考价值的文章主要介绍了python+django+sql实现简单的数据信息管理系统。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

今天分享一个博客适合刚准备学习Pythonweb开发的小伙伴。

系统涉及功能:

1:运用django+mysql实现了数据的增删改查以及搜索。

2:实现了对前端语言和前端bootstrap库的基本运用。

3:实现了自定义分页的功能以及指定页码跳转。

项目涉及技术:

Python的django框架,ORM数据*(库)架构,前端Web语言,python语言。

运行环境:

Django3.8,数据库是8.7,编译器是Pyharm专业版,网页效果展示小智双核浏览器。

代码展示:

只展示view.py文件,其他就不过多展示,因为本小项目的逻辑都在view.py类文件实现。

from django.shortcuts import render,redirect
from app01 import models
from django import forms
from django.core.validators import RegexValidator
from django.core.exceptions import ValidationError
from django.utils.safestring import mark_safe
from app01.utils.pagination import Pagination
# Create your views here.
def depart_list(request):
    query_set=models.Department.objects.all()
    page_object = Pagination(request, query_set, page_size=5)
    context = {
        "query_set": page_object.page_queryset,
        "page_string": page_object.html()
    }
    return render(request, "depart_list.html", context)
def depart_add(request):
    if request.method == "GET":
        return render(request,"depart_add.html")
    title=request.POST.get("title")
    models.Department.objects.create(title=title)
    return redirect("/depart/list/")
def depart_delete(request):
    nid=request.GET.get("id")
    models.Department.objects.filter(id=nid).delete()
    return redirect("/depart/list/")
def depart_modify(request,id):
    if request.method=="GET":
        row_object=models.Department.objects.filter(id=id).first()

        return render(request, "depart_modify.html", {"row_object":row_object})
    title=request.POST.get("title")
    models.Department.objects.filter(id=id).update(title=title)
    return redirect("/depart/list/")
def user_list(request):
    queryset=models.UserInfo.objects.all()
    page_object=Pagination(request,queryset,page_size=2)
    context={
        "queryset":page_object.page_queryset,
        "page_string":page_object.html()
    }
    # for obj in queryset:
        # print(obj.id,obj.name,obj.account,obj.create_time.strftime("%Y-%m-%d"),obj.get_gender_display(),obj.depart.title)
        # depart_id=表中数据int       depart==所关联表中对应的对象     depart.title
        # print(obj.depart.title)
    return render(request, "user_list.html", context)
def user_add(request):
    if request.method=="GET":
        context={
            "gender_choice":models.UserInfo.gender_choices,
            "depart_list":models.Department.objects.all()
        }
        return render(request,"user_add.html",context)
    user=request.POST.get("user")
    pwd=request.POST.get("pwd")
    age=request.POST.get("age")
    account=request.POST.get("account")
    gender=request.POST.get("gd")
    ctime=request.POST.get("ctime")
    dapart_id=request.POST.get("dp")

    models.UserInfo.objects.create(name=user,password=pwd,age=age,account=account,gender=gender,create_time=ctime,depart_id=dapart_id)
    return redirect("/user/list/")

class UserModelForm(forms.ModelForm):

    # name=forms.CharField(min_length=3,label="用户名")
    # password=forms.CharField(label="密码",validators="可填写正则表达式来确定规范")

    class Meta:
        model=models.UserInfo
        fields=["name","password","age","account","create_time","gender","depart"]
    def __init__(self,*args,**kwargs):
        super().__init__(*args,**kwargs)
        for name,field in self.fields.items():
             # 不添加该密码输入框样式
            # if name=="password":
                # continue
            field.widget.attrs={"class":"form-control","placeholder":field.label}

def user_model_form_add(request):
    if request.method=="GET":
        form=UserModelForm()
        return render(request,"user_model_add.html",{"form":form})
    form =UserModelForm(data=request.POST)
    if form.is_valid():
        form.save()
        return redirect("/user/list/")
    return render(request,"user_model_add.html",{"form":form})
def user_modify(request,id):
    if request.method=="GET":
        row_object=models.UserInfo.objects.filter(id=id).first()
        form=UserModelForm(instance=row_object)
        return render(request,"user_modify.html",{"form":form})
    row_object=models.UserInfo.objects.filter(id=id).first()
    form=UserModelForm(data=request.POST,instance=row_object)
    if form.is_valid():
        form.save()
        return redirect("/user/list/")
    return render(request,"user_modify.html",{"form":form})
def user_delete(request,id):
    models.UserInfo.objects.filter(id=id).delete()
    return redirect("/user/list")

def phone_list(request):

    # for i in range(100):
        # models.PrettyNum.objects.create(mobile="16427309716",price=10,level=1,status=1)
    data_dict={}
    value = request.GET.get('q',"")
    if value:
        data_dict["mobile__contains"]=value

    queryset = models.PrettyNum.objects.filter(**data_dict).order_by("-level")

    page_object=Pagination(request,queryset)

    # page_queryset=page_object.page_queryset
    # page_string=page_object.html()

    context={
        "value":value,
        "queryset":page_object.page_queryset, # 分页完的数据
        "page_string": page_object.html() # 页码
    }
    """
    # 1.根据用户想要访问的页码,计算起止位置
    page=int(request.GET.get('page',1))
    page_size=10
    start=(page-1)*page_size
    end=page*page_size
    total_count= models.PrettyNum.objects.filter(**data_dict).order_by("-level").count()
    """
    # 总页码
    # total_page,div=divmod(total_count,page_size)
    # if div:
        # total_page+=1
    # queryset = models.PrettyNum.objects.filter(**data_dict).order_by("-level")[page_object.start:page_object.end]
    # for obj in queryset:
        # print(obj.id, obj.mobile, obj.price,obj.get_level_display(),obj.get_status_display())
        # depart_id=表中数据int       depart==所关联表中对应的对象     depart.title
        # print(obj.depart.title)


    return render(request,"phone_list.html",context)

class PhoneModelForm(forms.ModelForm):
    # models=forms.CharField(disabled=True,label="手机号") 设定该字段内容不可改
    mobile=forms.CharField(
        label="手机号",
        validators=[RegexValidator(r'^1\d{10}$',"手机号格式错误")]
    )
    # name=forms.CharField(min_length=3,label="用户名")
    # password=forms.CharField(label="密码",validators="可填写正则表达式来确定规范")
    class Meta:
        model=models.PrettyNum
        # fields="__all__" 展示所有字段
        # exclude=["level"] 排除指定字段
        fields=["mobile","price","level","status"]
    def __init__(self,*args,**kwargs):
        super().__init__(*args,**kwargs)
        for name,field in self.fields.items():
             # 不添加该密码输入框样式
            # if name=="password":
                # continue
            field.widget.attrs={"class":"form-control","placeholder":field.label}
    def clean_mobile(self):
        txt_mobile=self.cleaned_data["mobile"]
        exists=models.PrettyNum.objects.filter(mobile=txt_mobile).exists()
        if exists:
            raise ValidationError("手机号已存在")
        if len(txt_mobile)!=11:
            raise ValidationError("格式错误")
        return txt_mobile


class PhoneModelForm(forms.ModelForm):
    # models=forms.CharField(disabled=True,label="手机号") 设定该字段内容不可改
    mobile=forms.CharField(
        label="手机号",
        validators=[RegexValidator(r'^1\d{10}$',"手机号格式错误")]
    )
    # name=forms.CharField(min_length=3,label="用户名")
    # password=forms.CharField(label="密码",validators="可填写正则表达式来确定规范")
    class Meta:
        model=models.PrettyNum
        # fields="__all__" 展示所有字段
        # exclude=["level"] 排除指定字段
        fields=["mobile","price","level","status"]
    def __init__(self,*args,**kwargs):
        super().__init__(*args,**kwargs)
        for name,field in self.fields.items():
             # 不添加该密码输入框样式
            # if name=="password":
                # continue
            field.widget.attrs={"class":"form-control","placeholder":field.label}
    def clean_mobile(self):
        txt_mobile=self.cleaned_data["mobile"]
        exists=models.PrettyNum.objects.filter(mobile=txt_mobile).exists()
        if exists:
            raise ValidationError("手机号已存在")
        if len(txt_mobile)!=11:
            raise ValidationError("格式错误")
        return txt_mobile


# 编辑ModelForm
class PhoneEditModelForm(forms.ModelForm):
    # models=forms.CharField(disabled=True,label="手机号") 设定该字段内容不可改
    mobile=forms.CharField(
        label="手机号",
        validators=[RegexValidator(r'^1\d{10}$',"手机号格式错误")]
    )
    # name=forms.CharField(min_length=3,label="用户名")
    # password=forms.CharField(label="密码",validators="可填写正则表达式来确定规范")
    class Meta:
        model=models.PrettyNum
        # fields="__all__" 展示所有字段
        # exclude=["level"] 排除指定字段
        fields=["mobile","price","level","status"]
    def __init__(self,*args,**kwargs):
        super().__init__(*args,**kwargs)
        for name,field in self.fields.items():
             # 不添加该密码输入框样式
            # if name=="password":
                # continue
            field.widget.attrs={"class":"form-control","placeholder":field.label}
    def clean_mobile(self):
        txt_mobile=self.cleaned_data["mobile"]
        exists1=models.PrettyNum.objects.exclude(id=self.instance.pk).filter(mobile=txt_mobile).exists()
        if exists1:
            raise ValidationError("手机号编辑重复")
        if len(txt_mobile)!=11:
            raise ValidationError("格式错误")
        return txt_mobile

def phone_add(request):
    if request.method=="GET":
        form=PhoneModelForm()
        return render(request,"phone_add.html",{"form":form})
    form = PhoneModelForm(data=request.POST)
    if form.is_valid():
        form.save()
        return redirect("/phone/list/")
    return render(request,"phone_add.html",{"form":form})

def phone_modify(request,id):
    if request.method=="GET":
        row_object=models.PrettyNum.objects.filter(id=id).first()
        form=PhoneEditModelForm(instance=row_object)
        return render(request,"phone_modify.html",{"form":form})
    row_object=models.PrettyNum.objects.filter(id=id).first()
    form=PhoneEditModelForm(data=request.POST,instance=row_object)
    if form.is_valid():
        form.save()
        return redirect("/phone/list/")
    return render(request,"phone_modify.html",{"form":form})

def phone_delete(request,id):
    models.PrettyNum.objects.filter(id=id).delete()
    return redirect("/phone/list/")





部分运行截图:

python+django+sql实现简单的数据信息管理系统

python+django+sql实现简单的数据信息管理系统

python+django+sql实现简单的数据信息管理系统

如果有需要源码文件的同学可以私信我! 文章来源地址https://www.toymoban.com/news/detail-437416.html

到了这里,关于python+django+sql实现简单的数据信息管理系统的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • python课程设计——Django+vue信息管理系统

    python课程设计 之Django+vue2 文章目录 系列文章目录 前言 一、 信息管理系统的具体设计 二、 信息管理系统测试效果 三、结语 总结 python课程设计——Django+vue2 1 Django平台整体构建 一个完整的Django项目通常需要划分出很多不同的子模块进行设计,采用模块设计可以使得分工更加

    2024年02月05日
    浏览(68)
  • python+django高校师生健康信息管理系统pycharm

    管理员功能模块 4.1登录页面 管理员登录,通过填写注册时输入的用户名、密码、角色进行登录,如图所示。  4.2系统首页 管理员登录进入师生健康信息管理系统可以查看个人中心、学生管理、教师管理、数据收集管理、问卷分类管理、疫情问卷管理、问卷调查管理、返校信

    2024年02月06日
    浏览(52)
  • Python+django+vue开发的家教信息管理系统

    一直想做一款管理系统,看了很多优秀的开源项目但是发现没有合适的。 于是利用空闲休息时间开始自己写了一套管理系统。 功能介绍 平台采用B/S结构,后端采用主流的Python+django进行开发,前端采用主流的Vue.js进行开发。 整个平台包括前台和后台两个部分。 前台功能包括

    2024年04月16日
    浏览(39)
  • python 实现学生信息管理系统+MySql 数据库,包含源码及相关实现说明~

    1、系统说明 python 编写的学生信息管理系统+MySQL数据库,实现了增删改查的基本功能。 2、数据库说明 本人使用的是 MySQL8.0 版本 数据库端口号为:3306 数据库用户名是:root 数据库名称是:practice 建立的表是:students 3、系统功能 增加学生信息 删除学生信息 修改学生信息 查

    2024年02月11日
    浏览(54)
  • Python+Django+MySQL的图书馆管理系统【附源码,运行简单】

    自己做的项目,禁止转载,基于Python+Django+MySQL的图书馆管理系统,带用户登录、注册,基本的出版社、作者、图书信息的增删改查功能,还有分页功能,用Pycharm导入,安装依赖包,配置好数据库就可以正常运行了,里面的代码都含有注释,结构简单,清晰易懂,看一下就会

    2024年01月17日
    浏览(64)
  • 基于python的简单学生信息管理系统

    针对传统的学生信息管理方式,效率低下,不易存储,和数字化等问题,开发基于 Python 的学生信息管理系统,用于管理学生的个人信息和学习记录。它可以帮助教师和管理员更有效地管理学生信息,如学生基本信息、成绩、课程安排、考试记录等。同时,信息化、数字化的

    2024年02月05日
    浏览(45)
  • Java基础——学生成绩信息管理系统(简单实现)

    1、 定义一个学生类 Student,包含姓名、成绩信息; 2、使用 ArrayList集合存储学生对象; 3、 对集合中的元素进行增删查改的操作。 学生类可以包含姓名、成绩、学号、年龄等等,这里只包含了前两项学生类属性。 在该类中定义了简单的增、删、查、改的方法。 其中,遍历集

    2024年02月11日
    浏览(35)
  • 【数据库课设】图书馆资源管理系统 源码+流程图+结构设计(借还图书 逾期罚款 图书管理 读者管理 信息查询)python实现

    一个管理员编号对应一个密码,且需要有管理员注册密匙。 可以在图书信息表中录入、修改、删除图书。 可以在图书信息表中查询书籍。 可以编辑图书借阅、归还信息。 可以编辑欠款信息。 可以编辑读者信息表。 图书馆注册,获得读者编号。 可以在图书信息表中查阅书籍

    2024年02月10日
    浏览(53)
  • 学生信息管理系统 Java+SQL Server 数据库原理课程

    该项目实现了图形化界面的数据库的登录,以及对数据库中表的增删查改。 正好老师布置了相关作业,通过Java 连接 SQL Server 数据库,就写一个学生管理系统。 jdk8 数据库连接通过sqljdbc6.0 图形化界面用swing 目录 1、Java 连接SQL Server数据库 2、准备数据库 3、登录界面 要求:

    2024年02月09日
    浏览(69)
  • 数据库课程设计——学生信息管理系统C#,SQL Sever

    目录 利用SQL Sever和 VS C#实现 一、程序流程图 二、具体实现:利用SQL Sever和 VS实现,使用C#连接数据库 1、新建一个名为MySchool的数据库​​​​​​​ 2、C#连接数据库,并实现对MySchool数据库的增、删、改、查操作 (1)主界面  (2)学生登录页面 (3)个人主页 (4)注册页

    2024年01月18日
    浏览(52)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包