ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

五丶python_frm组件

2019-07-15 11:55:14  阅读:237  来源: 互联网

标签:username obj python frm models length user 组件 email


python_frm组件

一、URL添加

复制代码
 1 from django.contrib import admin
 2 from django.urls import path,re_path
 3 from app01 import  views
 4 
 5 
 6 urlpatterns = [
 7     path('admin/', admin.site.urls),
 8     path('users/', views.users),
 9     path('add_user/', views.add_user),
10     re_path('edit_user-(\d+)/',views.edit_user),
11 ]
复制代码

 

二、views.py操作

复制代码
 1 from django.shortcuts import render,redirect
 2 
 3 
 4 # Create your views here.
 5 
 6 from app01.formm import FormUser
 7 from app01 import models
 8 def users(request):
 9     user_list=models.UserInfo.objects.all()
10     return render(request,'users.html',{'user_list':user_list})
11 
12 
13 def add_user(request):
14     if request.method=='GET':
15         obj=FormUser()
16         return render(request,'add_user.html',{'obj':obj})
17     else:
18         obj=FormUser(request.POST)
19         if obj.is_valid():
20             print(obj.cleaned_data)
21 
22             #1.加载到数据库中 如果Form类中的变量username,email和Models中字段不一样采用方法1
23             ''' class FormUser(forms.Form):
24                     user=fields.CharField(max_length=16,min_length=6,required=True)
25                     emai=fields.EmailField(required=True,max_length=32)
26             '''
27             '''
28             class UserInfo(models.Model):
29                 username=models.CharField(max_length=32)
30                 email=models.EmailField(max_length=32)
31                 向数据库中添加数据用如下方法:
32                 
33                 models.UserInfo.objects.create(
34                 username=obj.cleaned_data['user'],
35                 email=obj.cleaned_data['emai'])
36             
37             '''
38             #2.如果Form类中的变量username,email和Models中字段一样 都是username,email采用方法2
39             ''' class FormUser(forms.Form):
40                     username=fields.CharField(max_length=16,min_length=6,required=True)
41                     email=fields.EmailField(required=True,max_length=32)
42             '''
43             '''
44             class UserInfo(models.Model):
45                 username=models.CharField(max_length=32)
46                 email=models.EmailField(max_length=32)
47                 向数据库中添加数据用如下方法:
48                 models.UserInfo.objects.create(**obj.cleaned_data)
49                 此外要注意对应的html网页中相应的变量也需要同时进行更改,保持一致
50             '''
51             models.UserInfo.objects.create(**obj.cleaned_data)
52             return redirect('/users/')
53         else:
54             return render(request, 'add_user.html', {'obj': obj})
55 
56 
57 def edit_user(request,nid):
58     if request.method=='GET':
59         # nid=request.GET.get('nid')
60         data=models.UserInfo.objects.filter(id=nid).first()
61         obj=FormUser({'username':data.username,'email':data.email})
62         return render(request,'edit_user.html',{'obj':obj,'nid':nid})
63     else:
64         obj=FormUser(request.POST)
65         if obj.is_valid():
66             models.UserInfo.objects.filter(id=nid).update(**obj.cleaned_data)
67             return redirect('/users/')
68         else:
69             return render(request,'edit_user.html',{'obj':obj,'nid':nid})
复制代码

三、MODLES创建类

复制代码
1 #Author:lee
2 from django import forms
3 from django.forms import fields
4 
5 
6 class FormUser(forms.Form):
7     username=fields.CharField(max_length=16,min_length=6,required=True)
8     email=fields.EmailField(required=True,max_length=32)
复制代码

 

四、PYTHON-HTML(显示-添加-编辑)

4.1显示页面

复制代码
 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>Title</title>
 6 </head>
 7 <body>
 8 <a href="/add_user/">添加</a>
 9 <ul>
10     {% for row in user_list %}
11         <li>{{row.id}}--{{ row.username }}-{{row.email}}<a href="/edit_user-{{ row.id }}/">编辑</a></li>
12     {% endfor %}
13 </ul>
14 </body>
15 </html>
复制代码

页面效果显示:

4.2添加页面

复制代码
 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>Title</title>
 6 </head>
 7 <body>
 8 <form action="/add_user-{{ nid }}/" method="post" novalidate>
 9     <p>{{obj.username }}{{ obj.errors.username.0}}</p>
10     <p>{{obj.email }}{{ obj.errors.email.0 }}</p>
11     <input type="submit" value="提交">
12 </form>
13 </body>
14 </html>
复制代码

点击上图    “添加按钮”’  页面效果显示:

 

4.3编辑页面

复制代码
 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>Title</title>
 6 </head>
 7 <body>
 8 <form action="/edit_user-{{ nid }}/" method="post">
 9     <p>{{ obj.username }}{{ obj.errors.username.0 }}</p>
10     <p>{{ obj.email }}{{ obj.errors.email.0 }}</p>
11 <input type="submit" value="submit">
12 </form>
13 </body>
14 </html>
复制代码

页面效果显示:

五、创建表

 

1 from django.db import models
2 
3 # Create your models here.
4 class UserInfo(models.Model):
5     username=models.CharField(max_length=32)
6     email=models.EmailField(max_length=32)

标签:username,obj,python,frm,models,length,user,组件,email
来源: https://www.cnblogs.com/ZT152156/p/11187974.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有