您的位置:首页 > 编程语言 > Go语言

Django中model和admin和form模块

2018-03-03 14:38 405 查看
form模块的主要作用是当form提交数据的时候抛出错误的时候,不需要自己定义错误类型,直接返回form对象的error就可以了(这是我的理解)看简单代码,在form.py文件中一个类就是一个自定义的form表单,然后在view中引用,利用规定的方法来提取form中的数据,如果发生错误,则返回
Form.py文件
from django import forms
class AddForm(forms.Form):
a = forms.IntegerField()
b = forms.IntegerField()
# coding:utf-8
from django.shortcuts import render
from django.http import HttpResponse

# 引入我们创建的表单类,view.py
def form1(request):
if request.method=="POST":  #这里POST一定要大写
#通常获取请求信息
#request.POST.get("user",None)
#request.POST.get("pwd",None)
#获取请求内容,做验证
f = Form1(request.POST)  #request.POST:将接收到的数据通过Form1验证
if f.is_valid():  #验证请求的内容和Form1里面的是否验证通过。通过是True,否则False。
print(f.cleaned_data)  #cleaned_data类型是字典,里面是提交成功后的信息
else:  #错误信息包含是否为空,或者符合正则表达式的规则
print(type(f.errors),f.errors)  #errors类型是ErrorDict,里面是ul,li标签
return render(request,"account/form1.html",{"error":f.errors})
return render(request,"account/form1.html")
关于model中的makemigrations和migration
前者指的是你model.py文件中的数据库结构发生了变化这个时候还没作用到数据,只是纪录一下,当你执行完前者的命令的时候你会发现你的项目migrations中会多一些文件,这就是你改动的纪录,
后者就是把你的改动作用的数据库中 ,在具体可以看看点击打开链接
然后就是admin模块中的用法
利用我理解的大白话说就是对你项目中的数据结构添加数据,进来一个新的学生管理员要向数据库中添加他的基本信息,一般管理页面和接口需要自己写,但是你直接引用Django中的admin直接就可以了,就是页面不好看,但是有bootstrap模块可以对页面自定义我是这样理解的,
做法就是你需要把你要管理的表结构加入到admin中,在admin.py文件中进行注册
admin.py文件from django.contrib import admin

from .models import UserTable

admin.site.register(UserTable)
# Register your models here.models.py文件
from django.db import models
from django.contrib import admin

# Create your models here.

class UserTable(models.Model):
id = models.AutoField(max_length = 100 , primary_key = True);
username = models.CharField(max_length = 100);
heading = models.CharField(max_length = 100);
pwd = models.CharField(max_length = 100);
registetime = models.DateTimeField(auto_now_add=True);
issudit = models.BooleanField(default = True);
phone = models.IntegerField()
当在登陆admin路由的时候就会user table的选项可以添加信息,这都是简单的用法
当登陆admin的时候需要注册超管详情看博客点击打开链接
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  python django