一、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组件的更多相关文章

  1. ExtJS 4.2 评分组件

    上一文章是扩展ExtJS自带的Date组件.在这里将创建一个评分组件. 目录 1. 介绍 2. 示例 3. 资源下载 1. 介绍 代码参考的是 Sencha Touch 2上的一个RatingStar ...

  2. react组件的生命周期

    写在前面: 阅读了多遍文章之后,自己总结了一个.一遍加强记忆,和日后回顾. 一.实例化(初始化) var Button = React.createClass({ getInitialState: f ...

  3. react-router 组件式配置与对象式配置小区别

    1. react-router 对象式配置 和 组件式配置    组件式配置(Redirect) ----对应---- 对象式配置(onEnter钩子) IndexRedirect -----对应-- ...

  4. Angular2入门系列教程3-多个组件,主从关系

    上一篇 Angular2项目初体验-编写自己的第一个组件 好了,前面简单介绍了Angular2的基本开发,并且写了一个非常简单的组件,这篇文章我们将要学会编写多个组件并且有主从关系 现在,假设我们要做 ...

  5. Angular2入门系列教程2-项目初体验-编写自己的第一个组件

    上一篇 使用Angular-cli搭建Angular2开发环境 Angular2采用组件的编写模式,或者说,Angular2必须使用组件编写,没有组件,你甚至不能将Angular2项目启动起来 紧接着 ...

  6. .NET Core 首例 Office 开源跨平台组件(NPOI Core)

    前言 最近项目中,需要使用到 Excel 导出,找了一圈发现没有适用于 .NET Core的,不依赖Office和操作系统限制的 Office 组件,于是萌生了把 NPOI 适配并移植到 .NET C ...

  7. .NetCore中的日志(1)日志组件解析

    .NetCore中的日志(1)日志组件解析 0x00 问题的产生 日志记录功能在开发中很常用,可以记录程序运行的细节,也可以记录用户的行为.在之前开发时我一般都是用自己写的小工具来记录日志,输出目标包 ...

  8. BootStrap_02之全局样式及组件

    1.BootStrap指定的四种屏幕尺寸: ①超大PC屏幕--lg(large):w>=1200px: ②中等PC屏幕--md(medium):1200px>w>=992px: ③P ...

  9. ExtJS 4.2 组件介绍

    目录 1. 介绍 1.1 说明 1.2 组件分类 1.3 组件名称 1.4 组件结构 2. 组件的创建方式 2.1 Ext.create()创建 2.2 xtype创建 1. 介绍 1.1 说明 Ex ...

随机推荐

  1. Jquery插件 “IT小鲜肉 Tree”,猛烈完善中

    今天又给Jquery插件“IT小鲜肉 Tree”添加了自定义图标.自定义标签显示功能:目前“IT小鲜肉 Tree”已经具备有checkbox.drag and drop 等基本功能. 废话不说,直接上 ...

  2. 浏览器根对象window之窗体和工具条

    1. 窗体和工具条 1.1 窗体 frames.self.window.parent.top.opener. frames 数组类型,页面中iframe的引用,如果页面有2个iframe,则frame ...

  3. 记作为前端开发人员跑去面试C#.NET

    先谈结果,"秦总",与我面试讨论一个半小时,十分感动,然后拒绝了我. 本月17日16时许,收到邀请,于18日9时到司面试,虽如今仅深入前端领域,皆因曾有1年ASP.NET(C#)的 ...

  4. SQL Server ->> MSDB.DBO.AGENT_DATETIME函数从整型转时间日期格式

    SELECT MSDB.DBO.AGENT_DATETIME(20170101,0), CAST(CAST(20170101 AS NVARCHAR(50)) AS DATETIME) 返回 2017 ...

  5. C# winform Visual Studio Installer打包教程

    C# winform  Visual Studio Installer打包教程 软件在功能开发实现后,其实并没有真正的完成.对于一个专业的开发者来说,Release软件应该是以安装版本的形式进行发布的 ...

  6. 查询SQL Version详细信息

    下面是一个查询SQL Server版本并给出升级建议的SQL代码,用来学习写SQL代码. ------------------------------------------------------- ...

  7. 安装SCOM Reporting Server

    在SQL群集计算机上可以安装SCOM Reporting Server. 1.运行SQL Server安装程序,选择 全新安装SQL Server,不能向已有的群集实例中添加Reporting Ser ...

  8. Linux 下Shell的学习2

    0. 查看帮助(比如内置功能)    man bash    -->变量处理大全 1.-计算变量长度的不同方法及不同方法的耗时对比    尽可能的用内置的命令处理,速度快        time ...

  9. Jmeter和LoadRunner的区别

    1.Jmeter的架构跟LoadRunner原理一样,都是通过中间代理,监控&收集并发客户端发现的指令,把他们生成脚本,再发送到应用服务器,再监控服务器反馈的结果的一个过程. 2.分布式中间代 ...

  10. CopyrightHelper—开源VS插件辅助插入版权注释

    前言 有很多时候,我们在写代码的时候需要在代码文件头加上描述和版权信息等,如果使用代码项目模板又得为每种文件定模板,而已不方便,如果从某个地方复制过来,又嫌麻烦... 为了能解决这种懒人的需求,我开始 ...