django orm插入一条_如何通过django的ORM远程发布文章?

利用django的ORM可以方便的给数据库插入文章

但是假如我django放在阿里云,那我想在本地写个插件,每天很方便的插入一些数据,最好是通过ORM的,因为管理起来比较方便,会涉及到多个站,可能会有200多个站,而ORM接口就不要每次输入密码了,类似wrodpress的接口这种

如果用SQL插入,就感觉不太优雅,而且比较麻烦,每次都要链接,数据库,因为这些站很可能会分到好几个数据库里

这里补充一下吧.其实需求很简:

就是在本地的电脑上,控制远程的django,实现批量发布文章和管理文章的功能!

最好能用到django的ORM

如果没办法解决,那么如何让本地的python脚本很方便的管理远程服务器的python的脚本,可以直接操作远程脚本进行一些命令等

7月8日再补充一下说明:

答案里面不少说暴露api的方式,我研究了一下,好像不太可以~

理由:

我django的models是这样设计的,里面有这些字段:

category = models.ForeignKey(Category, verbose_name=u'分类')

title = models.CharField(max_length=100, verbose_name=u'标题')

img = models.CharField(max_length=200,

default='/static/img/article/default.jpg')

tags = models.CharField(max_length=200, null=True, blank=True,

verbose_name=u'标签', help_text=u'用逗号分隔')

summary = UEditorField('摘要', height=300, width=1000,

default=u'', blank=True, imagePath="uploads/images/",

toolbars='besttome', filePath='uploads/files/')

content = UEditorField('内容', height=300, width=1000,

default=u'', blank=True, imagePath="uploads/images/",

toolbars='besttome', filePath='uploads/files/')

is_tuijian = models.BooleanField(default=False, verbose_name=u'推荐')

view_times = models.IntegerField(default=0)

zan_times = models.IntegerField(default=0)

is_top = models.BooleanField(default=False, verbose_name=u'置顶')

rank = models.IntegerField(default=0, verbose_name=u'排序')

status = models.IntegerField(default=0, choices=STATUS.items(),

verbose_name='状态')

# pub_time = models.DateTimeField(default=False,verbose_name=u'发布时间')

pub_time = models.DateTimeField(auto_now_add = True,verbose_name=u'发布时间') #博客日期

create_time = models.DateTimeField(u'创建时间', auto_now_add=True)

update_time = models.DateTimeField(u'更新时间', auto_now=True)

大家大概体验一下就可以了~就是说字段很多,而且基本都是非空字段,但是都有设置默认值!

用暴露api的方式,其实和自己写sql语句的效果差不多~:

插入的数据,每个字段都要写,比如sql语句, 你就不能只是简单的写个 title content category 这3个字段的值,而其他的django的ORM已经定义好了!

我大概举个例子大家就会明白!!!

比如如果用sql插入的话可能要构建这样一条语句:

INSERT INTO `zhangte`.`blog_article` (`id`,`title`,`img`,`summary`,`content`,`view_times`,`zan_times`,`is_top`,`rank`,`status`,`pub_time`,`create_time`,`update_time`,`category_id`,`tags`,`is_tuijian`,`is_tuijian`) VALUES ('{id}','{title}','{img}','{summary}','{content}','{view_times}','{zan_times}','{is_top}','{rank}','{status}','{pub_time}','{create_time}','{update_time}','{category_id}','{tags}','{is_tuijian}','{is_tuijian}');

暂且不说字段多,看起来杂!

而且万一我程序修改一个字段,那这个代码就不能用了!

那暴露api,其实也是一样的,比如我要post数据~那post数据,每个对应的字段都要写!

等于其实跟sql差不多的,结果可能是data 要写成这样:

data = {}

data["pk"] = pk

data["title"] = title

data["content"] = content

data["view_times"] = view_times

^^^^此处省略余下十几个字段!!!

等于说我每个字段都要定义,要不然会出现错误(因为都是非空!)

那如果有人建议,把这些字段改下可以空的话不就可以~?如果真是这样,那以后我怎么进行数据筛选?!?!!??!?

其实我想要的是这个效果!!!

假如能用django的ORM,就很方便了

插入数据只要:

article = Article.objects.get_or_create(

pk = pk,

title = title,

content = content,

category = fenlei,

summary = summary,

)[0]

就插入一条数据了!

这样的好处:

代码简洁

我以后对程序进行修改,比如增加字段等,就非常方便,理由大家应该都懂的!

还有很多好处!我相信如果django的ORM可以解决的话,肯定比如暴露api或是直接用sql语句操作方便很多吧

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值