Python学习---抽屉框架分析[ORM操作]180314
Django ORM操作
1. 字段操作
class User(model.Model);
u=字段
用处:
1 .admin中的字段验证
2. obj.clean_fields() 进行自定义的验证
3. 利用Djanfo Form进行验证,此时前台和后台的操作分开
但form和model里的字段重复【推荐使用】
ModelForm组件验证
name
email
model组件操作数据
name
email
4. 利用ModelForm实现models的字段验证【Admin就是基于此验证的】
2个文件直接的依赖性太强,适合小项目【不推荐使用】
ModelForm组件验证
直接采用model里面的字段
model组件操作数据
name
email
2. 内容操作
案例操作
字段用处1. admin中的字段验证,仅仅用于单表
settings.py
INSTALLED_APPS = [
...
'app01', # 注册app
]
STATICFILES_DIRS = (os.path.join(BASE_DIR, "statics"),) # 现添加的配置,这里是元组,注意逗号
TEMPLATES = [
...
'DIRS': [os.path.join(BASE_DIR, 'templates')],
]
admin.py
from django.contrib import admin
from app01 import models
# Register your models here. # 添加信息到Django Admin
admin.site.register(models.Test)
urls.py
from django.contrib import admin
from django.urls import path
from django.conf.urls import url, include
from app01 import views
urlpatterns = [
url('admin/', admin.site.urls),
]
views.py
from django.shortcuts import render, redirect
from app01 import models
页面显示;

初始化数据库
python manage.py makemigrations
python manage.py migrate
创建admin用户
python manage.py createsuperuser
字段用处2. obj.clean_fields() 进行自定义的验证
settings.py
INSTALLED_APPS = [
...
'app01', # 注册app
]
STATICFILES_DIRS = (os.path.join(BASE_DIR, "statics"),) # 现添加的配置,这里是元组,注意逗号
TEMPLATES = [
...
'DIRS': [os.path.join(BASE_DIR, 'templates')],
]
urls.py
from django.contrib import admin
from django.urls import path
from django.conf.urls import url, include
from app01 import views
urlpatterns = [
# 测试
url(r'^test.html', views.test),
]
models.py
from django.db import models
class Test(models.Model):
username = models.CharField(max_length=32, unique=True)
email = models.EmailField()
models.py
from django.db import models
class Test(models.Model):
username = models.CharField(max_length=32, unique=True)
email = models.EmailField()
views.py
from django.shortcuts import render, redirect
from app01 import models
# 测试
def test(request):
# 实例化一个对象
obj = models.Test(username='root', email='hhhlive.com')
# model进行参数的校验
obj.clean_fields()
obj.save() # 数据进行保存
return HttpResponse("test")
页面显示;

用处4: 基于ModelForm实现Django Admin字段添加[不更改数据库]
settings.py
INSTALLED_APPS = [
...
'app01', # 注册app
]
STATICFILES_DIRS = (os.path.join(BASE_DIR, "statics"),) # 现添加的配置,这里是元组,注意逗号
TEMPLATES = [
...
'DIRS': [os.path.join(BASE_DIR, 'templates')],
]
urls.py
from django.contrib import admin
from django.urls import path
from django.conf.urls import url, include
from app01 import views
urlpatterns = [
url('admin/', admin.site.urls),
]
model.py
from django.db import models
class Test(models.Model):
username = models.CharField(max_length=32, unique=True)
email = models.EmailField()
admin.py
from app01 import models
from django import forms
from django.contrib import admin
class TestForm(forms.ModelForm): # ModelForm和Form一样均继承了Model
username = forms.CharField(error_messages={'required':'用户名不能为空'})
email = forms.EmailField(error_messages={'invalid': '邮箱格式错误'})
age = forms.IntegerField(error_messages={"required": '请输入数字'})
class Meta:
models = models.Test
# fields = ('username',)
fields = '__all__' # 将model里面Test的全部字段倒给TestForm,此时具有验证功能
# 添加信息到Django Admin
# 此时Django Admin 里面有5个字段, Test的2个 + TestForm的3个
admin.site.register(models.Test, TestForm)
Python学习---抽屉框架分析[ORM操作]180314的更多相关文章
- Python学习---抽屉框架分析[小评论分析]0315
注: 此处的小评论涉及数据库操作 初级小评论代码 settings.py INSTALLED_APPS = [ ... 'app01', # 注册app ] STATICFILES_DIRS = (o ...
- Python学习---抽屉框架分析[数据库设计分析]180313
基本的: models.py ####################################以下都是抽屉的代码#################################### fro ...
- Python学习---抽屉框架分析[点赞功能/文件上传分析]0317
点赞功能分析 前台传递过来新闻id[new_id]和session[session内有用户ID和用户之间的信息]到后台 后台News数据库内用户和新闻是多对多的关系,查看第三张表中的内容,判读用户Id ...
- Python学习---抽屉框架分析[点赞功能分析]
实际上就是多了一个隐藏的span标签,内容是+1,配合setInterval实现的动态效果 settings.py INSTALLED_APPS = [ ... 'app01', # 注册app ] ...
- python学习笔记(二)、字符串操作
该一系列python学习笔记都是根据<Python基础教程(第3版)>内容所记录整理的 1.字符串基本操作 所有标准序列操作(索引.切片.乘法.成员资格检查.长度.最小值和最大值)都适用于 ...
- python 终级篇 django ---ORM操作
一般操作 必会的 ...
- 《转》Python学习(15)-对文件的操作(二)
转自 http://www.cnblogs.com/BeginMan/p/3169020.html 一.文件系统 从系统角度来看,文件系统是对文件存储器空间进行组织和分配,负责文件存储并对存入的文件进 ...
- python学习二,字符串常用操作
字符串可以说是在日常开发中应用最广泛的了,现在来总结下有关python中有关字符串一些常用操作 首先我们声明一个字符串变量 str = "hello world" 下面我们来依次介 ...
- [TimLinux] Python学习内容框架
以下内容主体来自<Python学习手册第四版>,大致整理出的方向 1. 第一部分:使用入门 介绍Python语法之前,先对Python的的各个方面进行一个比较宽广的介绍,包含对Python ...
随机推荐
- 029-FastDFSClient工具栏模板
模板一: package cn.e3mall.common.utils; import org.csource.common.NameValuePair; import org.csource.fas ...
- PHP之mb_strripos使用
mb_strripos (PHP 4 >= 4.0.6, PHP 5, PHP 7) mb_strrpos - Find position of last occurrence of a str ...
- 数据库sqlite3在linux中的使用
在linux下我们首先要获取root权限 当然也可是使用 sudo命令 接着让我们来安装sqlite3吧!博主当然是已经安装好了! 别急,的确你是安装好了sqlite3但是有一点必须要记住,你还没有安 ...
- mysql的join连接查询优化经历
工作中接开发主管反馈,有个资讯接口调用时有出现响应较慢,需要优化. 接口返回有时较慢??第一反应是接口的redis缓存过期时有大量请求穿过redis缓存,对mysql访问压力较大造成的. 先看PHP代 ...
- [转]如何选择Html.RenderPartial和Html.RenderAction
Html.RenderPartial与Html.RenderAction这两个方法都是用来在界面上嵌入用户控件的. Html.RenderPartial是直接将用户控件嵌入到界面上: <%Htm ...
- 微信小程序(一)--简单的介绍
转自:https://developers.weixin.qq.com/miniprogram/dev/index.html 响应的数据绑定 框架的核心是一个响应的数据绑定系统. 整个小程序框架系统分 ...
- shell文本操作
一.find查找命令的使用 1.find . -name "*.txt" 在当前目录下,查找以txt结尾的文件 2.find . -name "[a-z]" 在 ...
- Java基础——面向对象
Hello 大家好,我又来啦,今天我们来说说Java的面向对象. 还记得之前去面试几家公司的实习生职位,大部分面试官都问过我有关面向对象 的问题,不知道以后还会不会问,估计是不会了吧...(:3[▓▓ ...
- 【Chromium】GPU进程启动流程
本篇文档以gpu进程的创建和启动为例,讲述chormium如何启动一个browser进程的子进程 PS:本文使用的chromium代码版本为71 前言 GPU进程的启动时机是由browser进程负责的 ...
- slider轮播插件的多种写法
slider轮播插件相信大家经常会用到,写法也是各种各样,大部分都是用的第三方提供的组件使用,如果想基于自己的业务特点封装个组件供自己使用的话就要自己封装组件了,网上看了大部分写法都是通过js控制do ...