导读:本篇文章首席CTO笔记来给大家介绍有关django如何改数据的相关内容,希望对大家有所帮助,一起来看看吧。
django中怎么动态操作数据库字段?
django的ORM系统不支持修改删除字段的操作,也就是说你在写模型model文件的时候,比如说定义了这个user表,然后包含字段telphone定义,你一旦执行了manage.py syncdb 这个操作,就把表结构往数据库写死了,如果你之是删除了model文件的telphone,数据库是不被重新修改的。这个时候必须用原生SQL解决,也就是说自己写SQL语句让django执行,这样的话会出很多问题,也就是说你执行了alter table users drop column telphone之后,你的model文件不知道你已经对users表结构做了修改,这样会出直接导致django应用的崩溃。所以动态字段不好做。也可能是我才疏学浅,没太理解,也许有高人能做到。不过面对ORM这样的尽量别删除字段。
django中user扩展表中数据怎么更新
在models.py 中增加如下扩展user的类:
#==================扩展用户====================================
class UserProfile(models.Model):
user = models.OneToOneField(User)
major = models.TextField(default=\'\', blank=True)
address = models.CharField(max_length=200,default=\'\',blank=True)
def __unicode__(self):
return self.user.username
def create_user_profile(sender, instance, created, **kwargs):
\"\"\"Create the UserProfile when a new User is saved\"\"\"
if created:
profile = UserProfile()
profile.user = instance
profile.save()
#post_save.connect(create_user_profile, sender=User)
\"\"\" 不明白的是,我一定注释掉上面这一行,才不会出错,否则会有Duplicate entry \'2\' for key \'user_id\'\") ,看意思是,重复了,但不明白为什么重复,注释掉上面的之后,一切正常,但与官方文档又有差异了,迷惑中\"\"\"
#==================扩展用户结束================================12345678910111213141516171819
还需要修改admin.py
\"\"\"用户模块扩展\"\"\"
class ProfileInline(admin.StackedInline):
model = UserProfile
#fk_name = \'user\'
max_num = 1
can_delete = False
class CustomUserAdmin(UserAdmin):
inlines = [ProfileInline,]
admin.site.unregister(User)
admin.site.register(User, CustomUserAdmin)
\"\"\"用户模块扩展\"\"\"12345678910111213
修改settings.py 的配置,增加
\"\"\"用户模块扩展部分\"\"\"
AUTH_PROFILE_MODULE = \'djangoadmin.myadmin.UserProfile\'
\"\"\"用户模块扩展完成\"\"\"123
按照官方的解释,这里是app label加上扩展类的名字. 应该也就是创建的app的名字,官方推荐的方式就两个部分用”.”连接起来,我这里有三个部分,也没有报错。
然后运行 python manage.py syncdb ,这是会在数据库中创建响应的表,并且有user_id这个外键字段.
最后,我们来运行一下程序,并进入到增加用户界面中,你会发现,你扩展的字段都显示出来了
每次增加用户,都会在扩展的表中增加相应的数据,修改的时候,也会修改响相应的数据,通过 user_id 来关联,这样就完成了user model的扩展。
如果要获取扩展表中的内容,可以通过 request.user.get_profile().address 这种方式来获取. 得到 User对象后,就能很方便的得到扩展的类.
Django如何更新数据库
最简单的办法是。为数据库的表建立一个model。具体做法是这样子。
1.在settings.py里设置数据库连接方式。连接错误后面都没有办法
2.在models设置一个数据库表的对应数据结构,通常叫关系对象模型,所以叫model,它就是一个类。你可以用django-admin.py ...probe,似乎是这个命令,就是一个数据库的探测命令,可以根据表,自动生成model的代码。当然如果你先写了model的代码就可以用syncdb命令生成数据库的表
3.在urls.py里设置一个URL的path,当浏览器访问这个path时就可以打开对应的view中的函数
4.在view里
4.1 result=modelclass.objects.all()这个命令可以取出所有的记录
4.2 然后你可以直接将结果传递给模板。由模板显示。这是最合理的办法
4.3 在模板里 {% for cols in result %}
4.4 licols.field1/li
大约就是这样子。可能说的太粗。你对着教程看就知道了。
django 修改怎么保证原数据
目前到django1.7 为止 修改model的前提是:你已经创建完model,并且已经 使用 syncdb 或 migrate 创建了相应的数据库表。 然后再 修改model,不会对数据库表产生任何修改的。 具体的东西,自己去看 Django 相应版本的文档去吧 不同版本,不太一样。
Django rest framework + drf-yasg 关于 api 文档 web 页面数据修改方法
operation_summary :操作名称如下图
operation_description :接口介绍 如下图
operation_id :操作方法名如下图
manual_parameters : 修改 Parameters 中参数说明
request_body :post 发送内容 如下图
responses :响应内容 如下图
enum : 定义改字段可选的参数值,默认写第一个。如下图
description : 字段描述
type : 字段需要什么类型的数据
TYPE_OBJECT = \"object\"
TYPE_STRING = \"string\"
TYPE_NUMBER = \"number\"
TYPE_INTEGER = \"integer\"
TYPE_BOOLEAN = \"boolean\"
TYPE_ARRAY = \"array\"
TYPE_FILE = \"file\"
format : 进行验证的方式
FORMAT_DATE = \"date\"
FORMAT_DATETIME = \"date-time\"
FORMAT_PASSWORD = \"password\"
FORMAT_BINARY = \"binary\"
FORMAT_BASE64 = \"bytes\"
FORMAT_FLOAT = \"float\"
FORMAT_DOUBLE = \"double\"
FORMAT_INT32 = \"int32\"
FORMAT_INT64 = \"int64\"
FORMAT_EMAIL = \"email\"
FORMAT_IPV4 = \"ipv4\"
FORMAT_IPV6 = \"ipv6\"
FORMAT_URI = \"uri\"
FORMAT_UUID = \"uuid\"
FORMAT_SLUG = \"slug\"
FORMAT_DECIMAL = \"decimal\"
结语:以上就是首席CTO笔记为大家整理的关于django如何改数据的相关内容解答汇总了,希望对您有所帮助!如果解决了您的问题欢迎分享给更多关注此问题的朋友喔~
以上内容为新媒号(sinv.com.cn)为大家提供!新媒号,坚持更新大家所需的互联网后端知识。希望您喜欢!
版权申明:新媒号所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流,不声明或保证其内容的正确性,如发现本站有涉嫌抄袭侵权/违法违规的内容。请发送邮件至 k2#88.com(替换@) 举报,一经查实,本站将立刻删除。