django如何改数据(django初始化数据)

导读:本篇文章首席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如何改数据(django初始化数据)  第1张

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(替换@) 举报,一经查实,本站将立刻删除。

(0)
上一篇 2023-09-23 13:56
下一篇 2023-09-23 13:56

相关推荐

发表回复

登录后才能评论