Django开发

news2024/12/26 10:43:40

1.创建项目

创建项目:
在这里插入图片描述
删除内容:
在这里插入图片描述

2.创建APP

创建APP
在这里插入图片描述
注册APP:
在这里插入图片描述

3.设计表结构

在这里插入图片描述

4.在SQL中生成表

  • 工具连接MySQL生成数据库(在cmd中执行):

create database Day1 DEFAULT CHARSET utf8 COLLATE utf8_general_ci;

  • 修改数据库配置:
    在这里插入图片描述
  • Django命令生成数据库表(在tool的manage.py中执行):
    在这里插入图片描述

5.静态文件与模板文件

在这里插入图片描述

6.部门的管理

6.1部门列表

  • 基础
    编写url:
    在这里插入图片描述
    视图函数:
    在这里插入图片描述
    HTML文件:
    在这里插入图片描述
  • 显示数据库中的数据
    修改视图函数:
    在这里插入图片描述
    修改HTML文件(for循环):
    在这里插入图片描述
  • 添加部门
    添加URL:
    在这里插入图片描述
    添加视图函数:
    在这里插入图片描述
    添加HTML文件:
    在这里插入图片描述
  • 删除部门
    添加URL:
    在这里插入图片描述
    添加视图函数:
    在这里插入图片描述
    修改HTML文件:
    在这里插入图片描述
  • 修改部门
    添加URL:
    在这里插入图片描述
    添加视图函数:
    在这里插入图片描述
    HTML文件:
    在这里插入图片描述

7.模板的继承

模板文件:
在这里插入图片描述

Block可以有不同名字:
{% block content %} {% endblock %}
{% block cs %} {% endblock %}
{% block js %} {% endblock %}

三个继承:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

8.用户管理

8.1用户列表展示

添加URL:
在这里插入图片描述
添加视图函数:
在这里插入图片描述
HTML文件:
在这里插入图片描述

8.2初识Form

  • views.py
class MyForm(Form):
    user = forms.CharFiled(widget=forms.Input)
    pwd = forms.CharFiled(widget=forms.Input)
    email = forms.CharFiled(widget=forms.Input)
    
def user_add(request):
    if request.method=="GET":
        form=MyForm()
        return render(request,"user_add.html",{"form":form})
  • user_add.html
<form method="post">
	{{form.user}}
	{{form.pwd}}
	{{form.email}}
</form>
<form method="post">
	{% for field in form%}
		{{ field }}
	{% endfor %}
</form>

8.3ModelForm

  • models.py
class UserInfo(models.Model):
    """ 员工表 """
    name = models.CharField(verbose_name="姓名", max_length=16)
    password = models.CharField(verbose_name="密码", max_length=64)
    age = models.IntegerField(verbose_name="年龄")
    account = models.DecimalField(verbose_name="账户余额", max_digits=10, decimal_places=2, default=0)
    create_time=models.DateTimeField(verbose_name="入职时间")
    # 级联删除
    depart= models.ForeignKey(to="Department",to_field="id",on_delete=models.CASCADE)
    gender_choices=(
        (1,"男"),
        (2,"女"),
    )
    gender=models.SmallIntegerField(verbose_name="性别",choices=gender_choices)
  • views.py
class MyForm(ModelForm):
	xx=form.CharField("....")
	class Meta:
		model=UserInfo
		fields={"name","password","age","xx"}
    
def user_add(request):
    if request.method=="GET":
        form=MyForm()
        return render(request,"user_add.html",{"form":form})
  • user_add.html
<form method="post">
	{{form.user}}
	{{form.pwd}}
	{{form.email}}
</form>
<form method="post">
	{% for field in form%}
		{{ field }}
	{% endfor %}
</form>

8.4根据ModelForm编写用户添加功能

  • 添加URL:
    在这里插入图片描述
  • 添加views.py
class UserModelForm(forms.ModelForm):
    class Meta:
        model = models.UserInfo
        fields = ["name", "age", "gender", "password", "account", "depart", "create_time"]
    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        # 循环找到所有插件,添加class="form-control"
        for name, field in self.fields.items():
            field.widget.attrs = {"class": "form-control", "placeholder": field.label}

def user_model_form_add(request):
    """ 添加用户(ModelForm版本) """
    if request.method == "GET":
        form = UserModelForm()
        return render(request, 'user_model_form_add.html', {"form": form})
    # 用户POST提交数据,数据校验
    form = UserModelForm(data=request.POST)
    if form.is_valid():
        form.save()     # 校验成功则保存
        return redirect("/user/list/")
    else:               # 校验失败返回带有错误信息的表单
        return render(request, 'user_model_form_add.html', {"form": form})
  • 添加HTML
{% extends 'layout.html' %}
{% block content %}
    <div class="container">
        <div class="panel panel-default">
            <div class="panel-heading">新建用户</div>
            <div class="panel-body">
                <form method="post" novalidate>
                    {% csrf_token %}
                    {% for field in form %}
                        <div class="form-group">
                        <label>{{ field.label }}</label>
                        {{ field }}
                        <span style="color: red">{{ field.errors.0 }}</span>
                    </div>
                    {% endfor %}
                    <button type="submit" class="btn btn-primary">提交</button>
                </form>
            </div>
        </div>
    </div>
{% endblock %}
  • 一些修改
    models.py中:
    在这里插入图片描述
    setting.py中:
    在这里插入图片描述

8.5用户修改

添加URL:
在这里插入图片描述
添加视图函数:
在这里插入图片描述

HTML文件:

{% extends 'layout.html' %}
{% block content %}
    <div class="container">
        <div class="panel panel-default">
            <div class="panel-heading">编辑用户</div>
            <div class="panel-body">
                <form method="post" novalidate>
                    {% csrf_token %}
                    {% for field in form %}
                        <div class="form-group">
                        <label>{{ field.label }}</label>
                        {{ field }}
                        <span style="color: red">{{ field.errors.0 }}</span>
                    </div>
                    {% endfor %}
                    <button type="submit" class="btn btn-primary">提交</button>
                </form>
            </div>
        </div>
    </div>
{% endblock %}

8.5用户删除

添加URL:
在这里插入图片描述
添加视图函数:
在这里插入图片描述
HTML文件:
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/126131.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

融云获 51CTO 年终评选「中国 IT 行业政企数智办公优秀解决方案奖」

今日&#xff0c;51CTO 主办的“2022 年第十七届中国企业年终评选”榜单新鲜出炉&#xff0c;融云凭借百幄数智办公平台在政企信创办公领域的创新方案和独特设计&#xff0c;斩获“2022 年度中国 IT 行业政企数智办公优秀解决方案奖”。关注【融云 RongCloud】&#xff0c;了解…

B站年度产品榜 | 10项行业品类全面透析Z世代消费偏好

12月19日&#xff0c;哔哩哔哩官方发布“2022年 BILIBILI Z100”&#xff0c;这是B站官方推出的「UP主在用」年度产品榜&#xff0c;榜单包含10项产品类目87件产品&#xff0c;囊括美妆个护、数码3C、食品饮料、家居家电、交通出行、办公用品、鞋服箱包饰品、宠物用品、运动健康…

Linux线程控制

写在前面 我们今天来看线程的知识点&#xff0c;这个博客的内容很多&#xff0c;主要就是为了我们后面的网络做铺垫&#xff0c;最关键的是相比较于进程而言&#xff0c;线程是更加优秀的&#xff0c;我们现在的计算机大多采用的就是线程. 线程 我之前谈过在创建子进程的时候…

操作系统期末考试必会题库4——设备管理

1、DMA方式和中断控制方式的主要区别是什么&#xff1f; 2、面向块设备和面向流设备有何区别&#xff1f;各举一些例子 面向块的设备将信息保存在块中&#xff0c;块的大小通常是固定的&#xff0c;传送过程中一次传送一块。通常可以通过块号访问数据。磁盘和USB智能卡都是面向…

【Linux】Linux权限(一)文件权限和目录权限

Linux权限1.Linux权限的概念2.Linux的用户分类3.Linux的文件类型3.1如何看待Linux下的文件后缀4.Linux的文件权限5.Linux下切换用户指令6.Linux文件访问者的分类&#xff08;拥有者、所属组、other&#xff09;6.1root 和普通用户 与 拥有者和所属组和其他人的关系6.2 如何描述…

matlab中ginput函数的用法

仅用来记录自己学习中不会的函数 ginput函数&#xff1a;来自鼠标或光标的图形输入 一、语法 [x,y] ginput(n) [x,y] ginput [x,y,button] ginput(…) 二、说明 ginput 提高当前坐标区中的交叉线以供您标识图窗中的点&#xff0c;从而使用鼠标定位光标。图窗必须具有焦点…

【Linux】 第八部分 Linux常用基本命令

【Linux】 第八部分 Linux常用基本命令 文章目录【Linux】 第八部分 Linux常用基本命令8. Linux常用基本命令8.1 帮助命令8.2 文件目录类命令pwd 显示当前工作目录的绝对路径cd 切换目录ls 列出目录的内容mkdir 创建目录rmdir 删除目录touch 创建文件cp 复制文件或者目录rm 删除…

网络编程 异步选择模型

目录 1.概念 2.代码样例 1.概念 基本概念&#xff0c;在这一个模型中的代码使用到了vs中窗口应用程序&#xff0c;可以看这一片文章https://blog.csdn.net/weixin_62859191/article/details/128415737?spm1001.2014.3001.5501https://blog.csdn.net/weixin_62859191/article/d…

站在2023起跑线,政企数字化如何深入“核心地带”?

今天&#xff0c;各行各业都积极开展数字化变革&#xff0c;以云为底座开展数字化已成为行业共识。而更进一步观察会发现&#xff0c;大型政企作为数字化转型的先行者和主力军&#xff0c;已经从资源上云、应用上云阶段&#xff0c;率先抵达了数字化深水区&#xff0c;迈入了深…

UDS-Data transmission functional unit

11 数据传输功能单元 11.1 概述 表185指定了数据传输功能单元。 注&#xff1a; ReadDataByIdentifier&#xff1a;客户端通过提供的dataIdentifier去请求读取标识记录的当前值。ReadMemoryByAddress&#xff1a;客户端请求读取所提供的内存范围的当前值。ReadScalingData…

机器学习100天(十九):019 分类模型评价指标-混淆矩阵

机器学习100天,今天讲的是:分类模型评价指标-混淆矩阵。 《机器学习100天》完整目录:目录 一、准确率(Accuracy) 逻辑回归是一个分类模型,那么对于分类模型,如何评估它的优劣呢? 好,我们先来认识一个名词:混淆矩阵(confusion matrix)。混淆矩阵是用来衡量一个分…

C语言预处理器

C 预处理器不是编译器的组成部分&#xff0c;但是它是编译过程中一个单独的步骤。简言之&#xff0c;C 预处理器只不过是一个文本替换工具而已&#xff0c;它们会指示编译器在实际编译之前完成所需的预处理。我们将把 C 预处理器&#xff08;C Preprocessor&#xff09;简写为 …

pybind11学习 | 使用CMake构建系统并生成pyd文件

文章目录一 通过Visual Studio生成二 通过CMake生成一 通过Visual Studio生成 在我之前的一篇文章pybind11学习 | VS2022下安装配置中&#xff0c;描述了如何通过配置VS2022实现pybind11项目构建和编译成Python拓展模块。 二 通过CMake生成 项目结构如下&#xff1a; 其中py…

(二十七)Vue组件的样式

文章目录scoped属性实现原理lang属性样式穿透Vue学习目录 上一篇&#xff1a;&#xff08;二十六&#xff09;Vue之插件 scoped属性 scoped 属性是 HTML5 中的新属性。如果使用该属性&#xff0c;则样式仅仅应用到 style 元素的父元素及其子元素。即让样式在局部生效&#x…

kafka多线程消费

Kafka consumer 多线程消费 kafka 消费者对象 - KafkaConsumer是非线程安全的。与KafkaProducer不同&#xff0c;KafkaProducer是线程安全的&#xff0c;因为开发者可以在多个线程中放心地使用同一个KafkaProducer实例。 但是对于消费者而言&#xff0c;由于它是非线程安全的…

FreeFileSync 11.29 发布

导读FreeFileSync 是一款开源软件&#xff0c;适用于 Windows、macOS 和 Linux。FreeFileSync 本质是一个用于文件夹对比和同步的软件&#xff0c;它可以创建和管理所有重要文件的备份副本。FreeFileSync 不是每次都复制每个文件&#xff0c;而是确定源文件夹和目标文件夹之间的…

使用 ClusterResourceSet 为 Cluster API 集群自动安装 CNI 插件

1 什么是 Cluster API Cluster API[1] 是一个 Kubernetes 子项目&#xff0c;它将声明式、Kubernetes 风格的 API 引入到集群的创建、配置和管理中。Cluster API 支持在 AWS, Azure, GCP, vSphere, KubeVirt 等多种环境中创建和管理 Kuberenetes 集群&#xff0c;并负责提供部…

单例(Singleton)设计模式

一、单例(Singleton)设计模式说明 设计模式是在大量的实践中总结和理论化之后优选的代码结构、编程风格、以及解决问题的思考方式。设计模式免去我们自己再思考和摸索。就像是经典的棋谱&#xff0c;不同的棋局&#xff0c;我们用不同的棋谱&#xff0c;"套路"所谓类…

WebView以及使用HTTP访问访问网络

文章目录使用网络技术WebView的用法使用HTTP访问网络使用HttpURLConnection使用OkHttp使用网络技术 在Android开发当中,我们应该合理的使用网络编写出更加出色的应用程序,下面学习以下如何在手机端使用HTTP和服务器进行网络交互,并对服务器返回的数据进行解析,这也是在Android…

爽啊,这么多有趣好玩强大的 Python 库

Python语言简洁、易读以及可扩展&#xff0c;在国内外用 Python 做研究的非常多。 Python 语言向来以丰富的第三方库而闻名。这么多有趣好玩且强大&#xff0c;靠一个人去寻找太难了。 最近粉丝群小伙伴们又罗列了一些&#xff0c;分享给大家。喜欢记得点个赞&#xff0c;加入…