日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

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

發布時間:2023/12/13 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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語句操作方便很多吧

總結

以上是生活随笔為你收集整理的django orm插入一条_如何通过django的ORM远程发布文章?的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。