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語句操作方便很多吧

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/443626.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/443626.shtml
英文地址,請注明出處:http://en.pswp.cn/news/443626.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

循環斐波那契數列_第五課:斐波那契數列(第一課時)

簡介:又稱黃金分割數列、因數學家列昂納多斐波那契以兔子繁殖為例子而引入,故又稱為“兔子數列”,指的是這樣一個數列:1、1、2、3、5、8、13、21、34……在數學上,斐波那契數列以如下被以遞推的方法定義:F(…

命令行 藍牙_Ubuntu使用BlueZ驅動藍牙dongle

藍牙dongle即藍牙適配器,一般為USB接口,通過USB連接到PC等設備。連接dongle后,PC即可使用驅動程序控制dongle連接其它藍牙設備。本文主要介紹在Ubuntu系統中安裝BlueZ的方法及藍牙的使用。01獲取BlueZBlueZ是Linux系統的官方藍牙協議棧&#…

Java在Windows下導出xml文件到Linux服務器上

最近由于公司項目需要,學習了在Windows平臺導出xml文件到Linux服務器上的指定目錄下的方法,(注:這里的我的Linux是在本機上裝的虛擬機)現在寫下來記錄一下! 1.首先是項目截圖: 2.主要是類&…

java peek函數_Java 8 Stream Api 中的 peek 操作

1. 前言我在 Java 8 Stream API中的 map 和flatMap 中講述了Java8 Stream API中 map 操作和 flatMap 操作的區別。然后有小伙伴告訴我 peek 操作 也能實現元素的處理。但是你知道 map 和 peek 的區別嗎? map 我們在開頭文章已經講過了,你可以去詳細了解一…

iphone如何查看dns延遲_iPhone手機網速慢?1分鐘教你設置DNS,網速立馬翻一番

很多小伙伴在購機時選擇蘋果手機都是因為iOS系統的流暢度和精簡性,但iPhone在可玩性和信號方面是不如安卓手機的。大家在使用過程中一定遇到過這樣的情況,連接同一個無線網,但是蘋果的網速總是要比安卓慢,這該怎么辦呢&#xff1f…

mysql 關系_MySQL之關系

關系多對多的關系,如何通過mysql來表示站在老師的角度一個老師可以教多個學生,一個老師也可以教一個學生。站在學生的角度一個學生可以被一個老師教一個學生也可以被多個老師教結論:如果站在兩邊看都是一對多的情況,那么這個關系就…

mysql賬號密碼忘_mysql用戶名密碼忘記了解決方法

今天想用一下實驗室服務器的mysql,發現不記得用戶名密碼了。解決方法如下:1. 保證服務器處于安全的狀態,如果可以請拔掉網線...(不過我跳過了這一步,額)2. 修改/etc/my.cnf文件在[mysqld]的段中加入:skip-grant-tables…

copying mysql status_mysql慢查詢copying to tmp table

windows server,無論修改my.ini的tmp_table_size,max_heap_table_size到多少,情況都一樣。同樣的表和查詢語句,在本地運行,沒出現慢查詢。SELECTg.goods_id,g.goods_name,g.shop_price,g.goods_thumb,SUM(og.goods_num…

JDK 7,jdk1.7 安裝及配置

1.打開網頁:http://www.oracle.com 下載對應平臺的合適JDK。 2. 雙擊下載的exe,如jdk-7u7-windows-i586.exe。 3.進入安裝向導: 4.下一步,更改安裝路徑,選擇安裝所有組件。 更改為D:\jdk1.7.0_07\ 點擊確定 5.下一步,…

c mysql 編譯_MySQL編譯安裝之cmake

mysql版本5.5以上編譯安裝時需要用到軟件cmake,cmake特性是獨立于源碼編譯,編譯工作可以在另外一個目錄中而非源碼目錄中進行,mysql版本5.5以上編譯安裝時需要用到軟件cmake,cmake特性是獨立于源碼編譯,編譯工作可以在…

vb連接mysql未發現_vb連接MySQL遇到的問題解決方法

1.安裝mysql,2.安裝MyODBC-standard-3.51.07-win.msi3:vb連接語句是:Public strcnn As StringPublic sql As StringPublic conn A1.安裝mysql,2.安裝MyODBC-standard-3.51.07-win.msi3:vb連接語句是:Public strcnn As StringPublic sql As StringPublic conn As New ADODB.Conn…

mysql常用內置函數_mysql常見內置函數

在mysql中有許多內置的函數,雖然功能都能在PHP代碼中實現,但巧妙的應用mysql內置函數可以大大的簡化開發過程,提高效率。在這里我總結一下一些常用的,方便以后查看:mysql字符串函數:concat(String2 [,...])…

mysql里面有沒有map類型_MySQL學習(二) 數據類型

MySQL支持多種列類型:數值類型、日期/時間類型和字符串(字符)類型。數值類型數值類型又分為整數型與小數型整數型下面的表顯示了需要的每個整數類型的存儲和范圍創建一張表mysql> CREATE TABLE t_int (int_1 TINYINT,int_2 SMALLINT,int_3 MEDIUMINT,int_4 INT,i…

mysql alter table if_MySQL中的alter table命令的基本使用方法及提速優化

一、基本用法1. 增加列?1alter table tbl_nameadd col_name type例如, 給pet的表增加一列 weight,?1mysql>alter table petadd weightint;2. 刪除列?1alter table tbl_namedrop col_name例如, 刪除pet表中的weight這一列?1mysql>alter table petdrop weight;3. 改變…

mysql_real_escape_string 報錯_addslashes與mysql_real_escape_string的區別

addslashes和mysql_real_escape_string.都是為了使數據安全的插入到數據庫中而進行過濾.那么這兩個函數到底是有什么區別呢??我們今天來簡單的看下..首先.我們還是從PHP手冊入手..手冊上addslashes轉義的字符是單引號()、雙引號(")、反斜線(\)與NUL(NULL 字符)。mysql_r…

shell執行perl_【編程技巧(一)】在Perl、Shell和Python中傳參與輸出幫助文檔

社會你明哥,人狠話又多!【小明的碎碎念】與你不見不散!作為一名搞數據的生物狗,咱們是生物狗中代碼寫得最六的,程序員中生物學得最好的——大家沒意見吧,有意見請憋著跟隨小明的步伐,讓我們開開…

項目開發中的編碼規范

1.規范存在的意義: 好的編碼規范可以盡可能的減少一個軟件的維護成本 , 并且幾乎沒有任何一個軟件,在其整個生命周期中,均由最初的開發人員來維護; 好的編碼規范可以改善軟件的可讀性,可以讓開發人員盡快而徹底地理解…

mysql 5.6.36安裝圖解_2017年12月聚合文章--實戰-Mysql5.6.36腳本編譯安裝及初始化 | 碼友網...

概述本文為centos7.3自動化編譯安裝mysql5.3.6的腳本及后續初始化操作,話不多少,直接上腳本。安裝腳本install.py如下:#codingutf-8#!/usr/bin/pythonimport os,commands#定義變量install_dir /data/mysqldata_dir /data/mysql/datapackage…

python之路2.0_Python之路【第二十一篇】:JS基礎

1.2 ECMAScript盡管 ECMAScript 是一個重要的標準,但它并不是 JavaScript 唯一的部分,當然,也不是唯一被標準化的部分。實際上,一個完整的 JavaScript 實現是由以下 3 個不同部分組成的:● 核心(ECMAScript)● 文檔對象…

solr4 mysql自動更新_(solr系列:五) solr定時實時重建索引和增量更新

將mysql中的數據導入到了solr中之后,如果數據庫中的數據有變動,solr中還是第一次導入的舊的數據,那該如何是好呢?該如何實現mysql數據庫中的數據定時同步到solr中呢?下面將做詳細的介紹。準備工作要做好:1、…