python_frm组件
一、URL添加
from django.contrib import admin
from django.urls import path,re_path
from app01 import views urlpatterns = [
path('admin/', admin.site.urls),
path('users/', views.users),
path('add_user/', views.add_user),
re_path('edit_user-(\d+)/',views.edit_user),
]
二、views.py操作
from django.shortcuts import render,redirect # Create your views here. from app01.formm import FormUser
from app01 import models
def users(request):
user_list=models.UserInfo.objects.all()
return render(request,'users.html',{'user_list':user_list}) def add_user(request):
if request.method=='GET':
obj=FormUser()
return render(request,'add_user.html',{'obj':obj})
else:
obj=FormUser(request.POST)
if obj.is_valid():
print(obj.cleaned_data) #1.加载到数据库中 如果Form类中的变量username,email和Models中字段不一样采用方法1
''' class FormUser(forms.Form):
user=fields.CharField(max_length=16,min_length=6,required=True)
emai=fields.EmailField(required=True,max_length=32)
'''
'''
class UserInfo(models.Model):
username=models.CharField(max_length=32)
email=models.EmailField(max_length=32)
向数据库中添加数据用如下方法: models.UserInfo.objects.create(
username=obj.cleaned_data['user'],
email=obj.cleaned_data['emai']) '''
#2.如果Form类中的变量username,email和Models中字段一样 都是username,email采用方法2
''' class FormUser(forms.Form):
username=fields.CharField(max_length=16,min_length=6,required=True)
email=fields.EmailField(required=True,max_length=32)
'''
'''
class UserInfo(models.Model):
username=models.CharField(max_length=32)
email=models.EmailField(max_length=32)
向数据库中添加数据用如下方法:
models.UserInfo.objects.create(**obj.cleaned_data)
此外要注意对应的html网页中相应的变量也需要同时进行更改,保持一致
'''
models.UserInfo.objects.create(**obj.cleaned_data)
return redirect('/users/')
else:
return render(request, 'add_user.html', {'obj': obj}) def edit_user(request,nid):
if request.method=='GET':
# nid=request.GET.get('nid')
data=models.UserInfo.objects.filter(id=nid).first()
obj=FormUser({'username':data.username,'email':data.email})
return render(request,'edit_user.html',{'obj':obj,'nid':nid})
else:
obj=FormUser(request.POST)
if obj.is_valid():
models.UserInfo.objects.filter(id=nid).update(**obj.cleaned_data)
return redirect('/users/')
else:
return render(request,'edit_user.html',{'obj':obj,'nid':nid})
三、MODLES创建类
#Author:lee
from django import forms
from django.forms import fields class FormUser(forms.Form):
username=fields.CharField(max_length=16,min_length=6,required=True)
email=fields.EmailField(required=True,max_length=32)
四、PYTHON-HTML(显示-添加-编辑)
4.1显示页面
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<a href="/add_user/">添加</a>
<ul>
{% for row in user_list %}
<li>{{row.id}}--{{ row.username }}-{{row.email}}<a href="/edit_user-{{ row.id }}/">编辑</a></li>
{% endfor %}
</ul>
</body>
</html>
页面效果显示:
4.2添加页面
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<form action="/add_user-{{ nid }}/" method="post" novalidate>
<p>{{obj.username }}{{ obj.errors.username.0}}</p>
<p>{{obj.email }}{{ obj.errors.email.0 }}</p>
<input type="submit" value="提交">
</form>
</body>
</html>
点击上图 “添加按钮”’ 页面效果显示:
4.3编辑页面
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<form action="/edit_user-{{ nid }}/" method="post">
<p>{{ obj.username }}{{ obj.errors.username.0 }}</p>
<p>{{ obj.email }}{{ obj.errors.email.0 }}</p>
<input type="submit" value="submit">
</form>
</body>
</html>
页面效果显示:
五、创建表
from django.db import models # Create your models here.
class UserInfo(models.Model):
username=models.CharField(max_length=32)
email=models.EmailField(max_length=32)
python_frm组件的更多相关文章
- ExtJS 4.2 评分组件
上一文章是扩展ExtJS自带的Date组件.在这里将创建一个评分组件. 目录 1. 介绍 2. 示例 3. 资源下载 1. 介绍 代码参考的是 Sencha Touch 2上的一个RatingStar ...
- react组件的生命周期
写在前面: 阅读了多遍文章之后,自己总结了一个.一遍加强记忆,和日后回顾. 一.实例化(初始化) var Button = React.createClass({ getInitialState: f ...
- react-router 组件式配置与对象式配置小区别
1. react-router 对象式配置 和 组件式配置 组件式配置(Redirect) ----对应---- 对象式配置(onEnter钩子) IndexRedirect -----对应-- ...
- Angular2入门系列教程3-多个组件,主从关系
上一篇 Angular2项目初体验-编写自己的第一个组件 好了,前面简单介绍了Angular2的基本开发,并且写了一个非常简单的组件,这篇文章我们将要学会编写多个组件并且有主从关系 现在,假设我们要做 ...
- Angular2入门系列教程2-项目初体验-编写自己的第一个组件
上一篇 使用Angular-cli搭建Angular2开发环境 Angular2采用组件的编写模式,或者说,Angular2必须使用组件编写,没有组件,你甚至不能将Angular2项目启动起来 紧接着 ...
- .NET Core 首例 Office 开源跨平台组件(NPOI Core)
前言 最近项目中,需要使用到 Excel 导出,找了一圈发现没有适用于 .NET Core的,不依赖Office和操作系统限制的 Office 组件,于是萌生了把 NPOI 适配并移植到 .NET C ...
- .NetCore中的日志(1)日志组件解析
.NetCore中的日志(1)日志组件解析 0x00 问题的产生 日志记录功能在开发中很常用,可以记录程序运行的细节,也可以记录用户的行为.在之前开发时我一般都是用自己写的小工具来记录日志,输出目标包 ...
- BootStrap_02之全局样式及组件
1.BootStrap指定的四种屏幕尺寸: ①超大PC屏幕--lg(large):w>=1200px: ②中等PC屏幕--md(medium):1200px>w>=992px: ③P ...
- ExtJS 4.2 组件介绍
目录 1. 介绍 1.1 说明 1.2 组件分类 1.3 组件名称 1.4 组件结构 2. 组件的创建方式 2.1 Ext.create()创建 2.2 xtype创建 1. 介绍 1.1 说明 Ex ...
随机推荐
- Jquery插件 “IT小鲜肉 Tree”,猛烈完善中
今天又给Jquery插件“IT小鲜肉 Tree”添加了自定义图标.自定义标签显示功能:目前“IT小鲜肉 Tree”已经具备有checkbox.drag and drop 等基本功能. 废话不说,直接上 ...
- 浏览器根对象window之窗体和工具条
1. 窗体和工具条 1.1 窗体 frames.self.window.parent.top.opener. frames 数组类型,页面中iframe的引用,如果页面有2个iframe,则frame ...
- 记作为前端开发人员跑去面试C#.NET
先谈结果,"秦总",与我面试讨论一个半小时,十分感动,然后拒绝了我. 本月17日16时许,收到邀请,于18日9时到司面试,虽如今仅深入前端领域,皆因曾有1年ASP.NET(C#)的 ...
- SQL Server ->> MSDB.DBO.AGENT_DATETIME函数从整型转时间日期格式
SELECT MSDB.DBO.AGENT_DATETIME(20170101,0), CAST(CAST(20170101 AS NVARCHAR(50)) AS DATETIME) 返回 2017 ...
- C# winform Visual Studio Installer打包教程
C# winform Visual Studio Installer打包教程 软件在功能开发实现后,其实并没有真正的完成.对于一个专业的开发者来说,Release软件应该是以安装版本的形式进行发布的 ...
- 查询SQL Version详细信息
下面是一个查询SQL Server版本并给出升级建议的SQL代码,用来学习写SQL代码. ------------------------------------------------------- ...
- 安装SCOM Reporting Server
在SQL群集计算机上可以安装SCOM Reporting Server. 1.运行SQL Server安装程序,选择 全新安装SQL Server,不能向已有的群集实例中添加Reporting Ser ...
- Linux 下Shell的学习2
0. 查看帮助(比如内置功能) man bash -->变量处理大全 1.-计算变量长度的不同方法及不同方法的耗时对比 尽可能的用内置的命令处理,速度快 time ...
- Jmeter和LoadRunner的区别
1.Jmeter的架构跟LoadRunner原理一样,都是通过中间代理,监控&收集并发客户端发现的指令,把他们生成脚本,再发送到应用服务器,再监控服务器反馈的结果的一个过程. 2.分布式中间代 ...
- CopyrightHelper—开源VS插件辅助插入版权注释
前言 有很多时候,我们在写代码的时候需要在代码文件头加上描述和版权信息等,如果使用代码项目模板又得为每种文件定模板,而已不方便,如果从某个地方复制过来,又嫌麻烦... 为了能解决这种懒人的需求,我开始 ...