Django自学笔记 6-3 使用模型(models)创建表单(form)

MySQL数据库实验:任务五 数据库的视图设计 任务五 数据库的视图设计 文章目录任务五 数据库的视图设计【实训目的与要求】【实训原理】【实训步骤】一、创建视图(注意WITH CHECK OPTION子句用法)1.创建行列子集视图2.在多表上建立视图3.创建带表达式的视图4.创建分组视图二、查看视图1.使用DESC语句查看视图2.使用SHOW TABLE STATUS语句查看视图3.使用SHOW CREATE VIEW查看视图三、查询视图... 阅读详情

————总目录——前言——框架版本————

======================= 大爽歌作,made by big shuang =======================

三 使用模型(models)创建表单(form)

本文参考:Forms for models

1 - 初步介绍

很多时候,我们使用的表单,是与模型密切关联的(官方文档称之为紧密映射)。

比如注册学生账号,其表单与学生的模型字段基本是一一对应的。
这种情况下,自己一个一个去编辑设置表单的字段比较费事,而且如果模型中有字段修改,表单这边也要去修改。

在这种情况下,在表单中定义字段类型是多余的,因为您已经在模型中定义了字段。
因此,Django提供了一个辅助类ModelForm,帮助您从Django模型创建表单类。

举个例子
比如我们在models.py有这样一个学生类

from django.db import models

class Student(models.Model):
    gender = [
        ("m", "男"),
        ("f", "女")
    ]

    name = models.CharField(max_length=50, verbose_name="姓名")
    gender = models.CharField(max_length=10, choices=gender, default='m', verbose_name="性别")
    birthday = models.DateField(verbose_name="生日")
    email = models.EmailField(verbose_name="邮箱")
    info = models.CharField(max_length=255, verbose_name="个人简介", help_text="一句话介绍自己,不要超过250字")

    grade = models.CharField(max_length=4, verbose_name="年级")
    number = models.CharField(max_length=6, verbose_name="年级子学号")
    password = models.CharField(max_length=30, verbose_name="密码")

我们要给这个学生类建立一个表单,用于在注册页面提交注册信息。
那么forms.py代码如下

from django import forms
from .models import Student

class StuRegisterForm(forms.ModelForm):

    class Meta:
        model = Student
        fields = ('grade',
                  'name',
                  'password',
                  'confirm_password',
                  'gender',
                  'birthday',
                  'email',
                  'info')

其中Meta是元数据类,用于去编辑设置一些更深层次的设置。
要使用一个模型来创建表单,则在Meta元数据类中指定对应的model属性

fields属性见本文第二部分

2 - 选择字段

对于和模型紧密映射的表单,有时我们不希望有些字段能够被用户编辑(比如一些需要后台按照逻辑去生成的字段)
这个时候我们可以使用:

  1. fields属性,设置哪些字段是可以让用户进行编辑的
  2. exclude属性,设置哪些字段是不让用户进行编辑的(用户在表单中也看不到这个字段)

上面两个属性一般使用列表(元组也可以),包含其需要指定的字段名。

fields属性可设置为特殊值’all’,以指示应该使用模型中的所有字段

补充:如果你在模型字段上设置了edititable=False,那么通过ModelForm从模型创建的任何表单都不会包含该字段。

Django学习笔记3 用ModelForm创建基于表单的页面 用ModelForm创建基于表单的页面 之前创建了两个页面,分别是主页index、主题页topics和单个主题详情页topic, 下面,创建基于表单的页面,使得用户可以添加主题。 1.首先创建/learning_logs/forms.py文件 from django import forms # 从models.py导入Topic类 from .models import Topic ... 阅读详情

相关推荐

Kaggle | 总奖池超200万美金的数学竞赛AIMO2冠军方案

••••结论1:通过结合高质量大规模数据集、工具集成推理和生成式选择方法,可以构建在挑战性数学问题上达到最先进水平的语言模型。本文的方法在 AIMO-2 竞赛中的胜利以及在多个数学基准上的 SOTA 结果验证了这一策略的有效性。结论2:发布 OpenMathReasoning 数据集、OpenMath-Nemotron 模型和代码是社区的宝贵财富。

hxshine的博客 1195

Django2.2丨从模型创建表单

ModelForm Django提供了一个辅助类可以从一个Django模型创建一个Form类 示例 >>> from django.forms import ModelForm >>> from myapp.models import Article # Create the form class. >>> class ArticleForm(ModelForm): ... class Meta: ... model = Art

m0_45198298的博客 419

数据结构实验1.2—高精度计算PI值(西工大)

这是数据结构第二题的题目,是让我们根据用户的需求来计算派的值 这是题目的详细描述,刚看到这道题的时候,我是真的头大,完全没有思路,于是查找了一些大佬的笔记后才开始编写 这是我在写这些代码是所运用到的数学反三角函数幂次展开式的知识。 下面是正确的代码以及我的一些见解,和需要注意的一些地方。希望能对你有所帮助。如有更加精简的算法,请在评论区留下你的算法!!!谢谢!!! #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<stdl

abcdef0623的博客 5831

Django Form实现表单使用及应用场景

Django Form实现表单使用及应用场景

json_li的博客 1151

AppleAccount注册之生成sign

根据日志发现:签名来自于AuthKit的-[AKAppleIDServerResourceLoadDelegate signRequest:withCompletionHandler:]的一个block,这个库是放在共享缓存库里的,找到提前准备好的IDA文件,先去找主方法,根据分析IDA,最后找到了实际生成签名的方法:t1。,接受五个参数,context(之前讲的获取到的客户端证书),bytes(待加密的body字节),length(字节长度),以及两个接受结果的参数,直接进这个方法看,

2503_90751938的博客 1006

vue3+SuperMap iClient3D for Cesium实现可视域分析功能

基于Vue3框架及SuperMap iClient3D for Cesium提供的ViewShed3D类实现场景动态可视域分析

qq_43334519的博客 2248

小白IT:Django框架—form组件和ModelForm

文章目录一、form简介1.form组件的功能2.form组件的简单使用数据库模型准备form简单使用在视图函数中写注册函数模板文件login.html文件二、Form中常用字段约束与插件1.常用字段约束与对应插件initialerror_messagespasswordradioSelect单选Select多选Select单选checkbox多选checkboxdate类型2.Choice字段获取数据库数据方式一:init方法实现对应的视图函数几个注意点方式二:通过字段中的queryset属性设置三、fo

yidianyidei的博客 732

CSI Tools 工具的安装 Intel 5300 + Ubuntu14.04

在 ubuntu14 系统上面安装 CSI Tools,2020最新教程,亲测可用,只要保证和我做法一致绝对可以安装好。

WS的小屋 1万+

Django的form表单(Django的form以及modelform的引导)

前言: 在一个网站中肯定会有大量的表单提交,但是如果每个表单都需要我们自己全部生写的话,就比较难受了,所以Django中的modelform就很有意思了。 Django中的form:木有对比就没有伤害。所以要知道Django的modelform的好,就要从普通的form来对比。 form: 先创建一个form_test的Django项目:里面有有个app01 :的app。目录如下; ...

Apy 1054

Solidworks二次开发(C# .NET API):从零构建装配体与虚拟零件

本文详细介绍了使用C#进行Solidworks二次开发,从零构建装配体与虚拟零件的完整流程。通过.NET API实现设计自动化,涵盖环境搭建、核心对象模型、虚拟零件创建与外部化保存等关键技术,帮助工程师将重复性建模工作程序化,大幅提升设计效率与标准化水平。

alice7model的博客 607

深入解析时钟同步技术:相位同步、频率同步与同源时钟的实战应用

本文深入解析时钟同步技术的三种核心方式:相位同步、频率同步与同源时钟,详细阐述其技术原理、实现方案及实战应用。通过对比分析不同同步方式的特点与适用场景,为电子系统设计提供选型指南,帮助工程师优化时钟网络设计,提升系统稳定性和性能。

weixin_29240711的博客 449

Django7—表单form_django form 中class myform(form) label=“部门名称”initia

telephone = forms.CharField(validators=[validators.RegexValidator(“1[345678]\d{9}”,message=‘请输入正确格式的手机号码!title = forms.CharField(max_length=3,label=‘标题’,min_length=2,error_messages={“min_length”:‘标题字符段不符合要求!email = forms.EmailField(label=‘邮箱’)

2401_87361386的博客 1085

嵌入式数字信号处理器(DSP)高频面试题及参考答案

数字信号处理器(DSP)是一种专门设计用于执行数字信号处理任务的微处理器。它具有高度优化的架构,能够高效地执行复杂的数学运算,如快速傅里叶变换(FFT)、卷积、滤波和其他信号处理算法。DSP通常具有高速的中央处理器、专用的硬件乘法器、累加器、硬件循环支持和高速的内存访问能力,以满足实时信号处理的需求。通信:用于调制解调、语音编码、数据压缩、加密和解密。音频处理:如音乐合成、音效增强、语音识别和语音合成。视频和图像处理:包括图像压缩、视频编码、图像增强和模式识别。生物医学工程。

大模型大数据攻城狮的专栏 5267

Django5表单基础:从Form类到ModelForm与验证体系

Form 类定义在应用的 forms.py 文件中,通过继承,并定义字段属性(如用户名、邮箱)来描述表单结构。每个字段对应一个 HTML 输入组件,并可配置标签、验证规则、显示样式(widget简单示例:创建留言表单"""用户留言表单:包含姓名、邮箱、留言内容"""# 1. 姓名字段:CharField(短字符串),标签为“姓名”,最大长度100label='姓名', # HTML中<label>标签的文本max_length=100, # 最大输入长度(前端限制+后端验证)

kaidebaba的博客 964

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain&#39;s apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath(&#39;DeepLearnToolbox&#39;));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand(&#39;state&#39;,0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W&#39;); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand(&#39;state&#39;,0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = &#39;sigm&#39;;%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, &#39;Too big error&#39;);```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand(&#39;state&#39;,0)sae = saesetup([784 100]);sae.ae{1}.activation_function = &#39;sigm&#39;;sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)&#39;)% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = &#39;sigm&#39;;nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, &#39;Too big error&#39;);```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x&#39;,28,28,60000))/255;test_x = double(reshape(test_x&#39;,28,28,10000))/255;train_y = double(train_y&#39;);test_y = double(test_y&#39;);%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you&#39;ll get around 1.2% errorrand(&#39;state&#39;,0)cnn.layers = { struct(&#39;type&#39;, &#39;i&#39;) %input layer struct(&#39;type&#39;, &#39;c&#39;, &#39;outputmaps&#39;, 6, &#39;kernelsize&#39;, 5) %convolution layer struct(&#39;type&#39;, &#39;s&#39;, &#39;scale&#39;, 2) %sub sampling layer struct(&#39;type&#39;, &#39;c&#39;, &#39;outputmaps&#39;, 12, &#39;kernelsize&#39;, 5) %convolution layer struct(&#39;type&#39;, &#39;s&#39;, &#39;scale&#39;, 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, &#39;Too big error&#39;);```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand(&#39;state&#39;,0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, &#39;Too big error&#39;);%% ex2 neural net with L2 weight decayrand(&#39;state&#39;,0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, &#39;Too big error&#39;);%% ex3 neural net with dropoutrand(&#39;state&#39;,0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, &#39;Too big error&#39;);%% ex4 neural net with sigmoid activation functionrand(&#39;state&#39;,0)nn = nnsetup([784 100 10]);nn.activation_function = &#39;sigm&#39;; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, &#39;Too big error&#39;);%% ex5 plotting functionalityrand(&#39;state&#39;,0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = &#39;softmax&#39;; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, &#39;Too big error&#39;);%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand(&#39;state&#39;,0)nn = nnsetup([784 20 10]); nn.output = &#39;softmax&#39;; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, &#39;Too big error&#39;);```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

django框架(七)——表单以及模型表单的使用

一、登陆注册实现思路 创建模型类(映射生成数据表) 创建登陆模板(创建注册模板) 创建视图函数 配置url 二、创建模型生成数据表 ① 在teacher/models.py中 from django.db import models class User(models.Model): username = models.CharField(verbose_name='用户名', m...

qq_43593912的博客 596

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

Django Form表单

如果在Django中,需要将一个表单中的数据保存在数据库中,可以通过如下方式。 首先,确定数据表,它应该包含一个id主键(自增长),和一个username的20变长字符串。 那么,首先定义model: from django.db import models class Test(models.Model): username = models.CharField(max_length

卧龙居 1万+

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

Django 提交 form 表单(使用sqlite3保存数据)

优化 提交 form 表单,https://www.cnblogs.com/klvchen/p/10608143.html 创建数据库的字段,在 models.py 中添加 from django.db import models # Create your models here. class UserInfo(models.Model): username = models.Cha...

weixin_30852367的博客 388

Django学习笔记之Django Form表单

Form介绍 我们之前在HTML页面中利用form表单向后端提交数据时,都会写一些获取用户输入的标签并且用form标签把它们包起来。 与此同时我们在好多场景下都需要对用户的输入做校验,比如校验用户是否输入,输入的长度和格式等正不正确。如果用户输入的内容有错误就需要在页面上相应的位置显示对应的错误信息.。 Django form组件就实现了上面所述的功能。 总结一下,其实form...

dengxiangbao3167的博客 126

Django表单处理:从基础到高级实践

Web表单是用户与服务器交互的核心组件,Django框架通过其强大的表单系统简化了这一过程。表单处理涉及数据验证、安全防护和用户体验等多个方面,Django的Form和ModelForm类提供了完整的解决方案。从基础字段类型到自定义验证逻辑,再到表单集和文件上传等高级特性,Django表单系统支持各种复杂场景。在实际开发中,合理运用CSRF防护、XSS防护等安全措施,结合表单缓存和AJAX提交等性能优化技巧,可以构建既安全又高效的Web应用。本文以图书管理系统为例,详细讲解Django表单的设计、验证、渲染

weixin_33749242的博客 365

Django高级-Form表单组件应用

form组件做的三件事 要有一个注册的页面,页面里面要有form表单 --> 生成HTML代码 form表单要能提交数据到后端,后端要做有效性校验 --> 数据有效性校验 要把校验的提示信息展示在页面上 --> 校验信息返回并展示,保存原来填写的内容 form组件的应用 例子 from django.shortcuts import render, HttpResponse ...

chengchuanji的博客 406

Django form组件的使用及modelform

平时自己在手写前端form表单的时候很复杂繁琐(我们在好多场景下都需要对用户的输入做校验,比如校验用户是否输入,输入的长度和格式等正不正确。如果用户输入的内容有错误就需要在页面上相应的位置显示对应的错误信息.。),但是Django的form表单帮你简化了这一个流程也帮你做了这样的事情, 1.生成页面可用的html标签 2.对传递到浏览器的数据进行校验 3.保留上次输...

weixin_30537391的博客 103

后台管理与form表单

(1)admin.pyfrom django.contrib import admin from . models import UserProfile,EmailVerfiyRecord # Register your models here. # 注册自定义的用户模型 class UserProfileAdmin(admin.ModelAdmin): # 展示的字段 list...

baidu_32542573的博客 1870

使用 django中 forms模块处理表单

一 .forms 模块的作用: 通过 froms 模块,允许将表单与class相结合,可以自动生成表单控 二. 使用步骤: 1. 创建 froms.py 2.导入froms from django import froms 3.创建class,一个class对应一个表单,必须继承自 forms.From 类 4、在class中创建属性 一个属性对应着一个表单控件 三. 在模板中解析 form 对象 1、注意: 需要自定义<form> ...

awaken_gx的博客 1451

django html form表单提交表单提交表单提交,Django表单提交数据与网页跳转

1.form表单提交数据的三个数据1、form标签必须要有action和method属性2、所有获取用户输入的标签必须有name属性3、必须有submit按钮2、Django 三件套from django.shortcuts import HttpResponse,render,rediect1、HttpResponse返回的是字符串2、render返回的是网页3、redirect是跳转3、req...

weixin_39857480的博客 740

Django-ColorField完全指南:为Django模型添加惊艳的颜色选择器

在Django开发中,为模型添加颜色选择功能通常需要复杂的自定义实现。而**Django-ColorField**作为一款专为Django设计的颜色选择器插件,让开发者能够轻松为模型字段集成直观的颜色选择界面。本文将详细介绍如何安装、配置和使用这个强大的工具,帮助你在项目中快速实现专业级的颜色管理功能。 ## 🚀 为什么选择Django-ColorField? Django-ColorFie

gitblog_00520的博客 1009

Django之form表单组件、cookie与session

---恢复内容开始--- Form表单组件 引例: 先来看一个注册的例子,全部用的是reg函数来实现的。 views.py文件 def reg(request): errors = {'username':'','password':''} if request.method == 'POST': username = request.POST....

weixin_30312659的博客 207
上一篇: Django自学笔记 6-2 表单(Form)基础操作
下一篇: Django自学笔记 6-4 forms进阶操作——重写forms方法
大爽歌
博客等级 码龄9年 422粉丝 92原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值