有一段時(shí)間,整個(gè)圈子都在轉(zhuǎn)一篇文章,或者更準(zhǔn)確地說(shuō),是一篇演講的內(nèi)容。我是一個(gè)平庸的程序員,我的大多數(shù)同齡人也是如此。平庸不是爭(zhēng)論,而是更好的學(xué)習(xí)。大師的神化對(duì)整個(gè)編程社區(qū)并不是很有幫助,甚至是有害的。而我們應(yīng)該有一顆心,不要沉迷于輕蔑的鏈條,不要懷疑我們是否是真正的程序員,能做的是心和責(zé)任去做事情。
子長(zhǎng)網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)!從網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開(kāi)發(fā)、APP開(kāi)發(fā)、成都響應(yīng)式網(wǎng)站建設(shè)等網(wǎng)站項(xiàng)目制作,到程序開(kāi)發(fā),運(yùn)營(yíng)維護(hù)。創(chuàng)新互聯(lián)成立與2013年到現(xiàn)在10年的時(shí)間,我們擁有了豐富的建站經(jīng)驗(yàn)和運(yùn)維經(jīng)驗(yàn),來(lái)保證我們的工作的順利進(jìn)行。專注于網(wǎng)站建設(shè)就選創(chuàng)新互聯(lián)。
這篇文章(演講)將會(huì)廣泛傳播,主要是因?yàn)樗侵腜ython框架Django的作者之一,Django是業(yè)界偉大的上帝。這篇文章第一次看到是早上,同事又讀非常感動(dòng),其原因可能是,作為一個(gè)整體的大學(xué)(法律)唯一一個(gè)無(wú)賴的學(xué)生寫代碼,沒(méi)有比較,只能讀和寫Wordpress(皮膚)不斷練習(xí)編程,唯一的希望就是變成一個(gè)60分的web開(kāi)發(fā)人員——服務(wù)器操作,后端應(yīng)用程序,前端代碼,設(shè)計(jì)、現(xiàn)場(chǎng)操作,或者只是——網(wǎng)站管理員,或者美悅名字——所有堆棧工程師。但我沒(méi)有轉(zhuǎn)向那篇文章,因?yàn)槲覐膩?lái)都不想成為一個(gè)平庸的程序員,也不想平庸的去解決不努力的名字,真正應(yīng)該做的是定義牛逼的角色程序員,心有不竭的追求。
多年來(lái),很多人都問(wèn)過(guò)我,你認(rèn)為誰(shuí)更強(qiáng)大。我很榮幸能成為中國(guó)最好的前端團(tuán)隊(duì),我有幸留在了最優(yōu)秀的代碼追求團(tuán)隊(duì)中,我很幸運(yùn)地創(chuàng)建了一個(gè)團(tuán)隊(duì)。參與并組織大型和小型會(huì)議,滿足或謙虛或自負(fù)地站在行業(yè)頂端的程序員。寫博客是在很多領(lǐng)域結(jié)識(shí)朋友的好方法。這是一個(gè)會(huì)議的過(guò)程。這個(gè)定義伴隨著一個(gè)思考過(guò)程。古人有云:修身、齊家、平天下。把技術(shù)帶回家,不要擔(dān)心完成工作。凝聚團(tuán)隊(duì),凝聚人心,以集體力量實(shí)現(xiàn)平臺(tái),建立信仰體系,是家庭;通過(guò)個(gè)人、團(tuán)隊(duì)甚至是世界的大組織的影響來(lái)影響整個(gè)社區(qū)。我總是試圖用同樣的方式來(lái)回答這些人的問(wèn)題。
說(shuō)了這么多,這也是對(duì)商業(yè)現(xiàn)象的一個(gè)參考,再一次,感覺(jué),定義,為什么?想要在很長(zhǎng)一段時(shí)間內(nèi)寫標(biāo)題,因?yàn)榻?jīng)常聽(tīng)到有人用形容詞而不是實(shí)際的內(nèi)容來(lái)判斷一些人的好壞,而事實(shí)上這不是一個(gè)好的現(xiàn)象,今天又看到了開(kāi)玩笑的戲謔。因?yàn)檫@是一個(gè)玩笑,剛醒來(lái)就有了精神,想說(shuō)兩句話。
實(shí)際上,我不知道Po在說(shuō)什么,但我在想ruan yifeng。阮先生和我從來(lái)沒(méi)有見(jiàn)過(guò)他的文章,他翻譯了黑客和畫家,他偶爾會(huì)發(fā)消息,也聽(tīng)到很多人用英語(yǔ)寫的“JavaScript繼承”。最近團(tuán)隊(duì)提升了ES6, ES6的介紹來(lái)自他的書,非常好。當(dāng)我聽(tīng)說(shuō)yubo的團(tuán)隊(duì)時(shí),我覺(jué)得很感動(dòng),我可以招募他。
他總是寫,寫和傳播給讀者,高階的基礎(chǔ),深入淺薄,寫作恰到好處。有爭(zhēng)議和錯(cuò)誤。這些錯(cuò)誤就像對(duì)廣東人說(shuō)“冬天來(lái)了,燕子飛向南方”。他的一些同事沒(méi)有提到這一點(diǎn)。他不是寫了一篇不好的文章嗎?在我看來(lái),他處于世界的水平,不僅僅是寫作,而是把“我們所知道的”變成“我們所做的”——告訴社區(qū)。在我看來(lái),這是最受尊敬的牛逼程序員之一。
剩下的就不多說(shuō)了?;氐窖鸥鞑嫉难葜v開(kāi)始——我們應(yīng)該有,并且不要沉溺于對(duì)鏈條的蔑視,不要懷疑自己是真正的程序員,能做的是用心和責(zé)任去把事情做好。
如果你是一個(gè)優(yōu)秀的程序員,那么——盡你最大的努力,沒(méi)有人比你更優(yōu)秀,也不是一項(xiàng)通過(guò)的任務(wù);把代碼分發(fā)出去,填滿你的GitHub主頁(yè),構(gòu)建車輪,填滿你的博客。把思想帶到社區(qū),利用微博和行業(yè)會(huì)議,讓今天的頂級(jí)技術(shù)和實(shí)踐成為明天最基本的介紹。所以,你是一個(gè)真正的程序員。
Django提供了sql,sql_all命令來(lái)生成MODEL的SQL語(yǔ)句,當(dāng)定義好Django Model后,可以在初始化調(diào)用Syncdb方法來(lái)自動(dòng)在數(shù)據(jù)庫(kù)里面生成相應(yīng)的表。
Model定義如下:
class TestModel(models.Model):
Name=models.CharField(max_length=64,blank=True)
from django.core.management.color import no_style
#Style是用來(lái)輸出語(yǔ)句時(shí)著色的
from django.db import connection
from django.db.backends import creation
#這里面有個(gè)類BaseDatabaseCreation,就是用來(lái)生成SQL語(yǔ)句的。
T=TestModel()
c=creation.BaseDatabaseCreation(connection)
c.sql_create_model(T,no_style())[0]
['CREATE TABLE "abc" (\n "id" integer NOT NULL PRIMARY KEY,\n "Theme" varchar(64) NOT NULL\n)\n;']
(1)Flask
Flask確實(shí)很“輕”,不愧是Micro Framework,從Django轉(zhuǎn)向Flask的開(kāi)發(fā)者一定會(huì)如此感慨,除非二者均為深入使用過(guò)
Flask自由、靈活,可擴(kuò)展性強(qiáng),第三方庫(kù)的選擇面廣,開(kāi)發(fā)時(shí)可以結(jié)合自己最喜歡用的輪子,也能結(jié)合最流行最強(qiáng)大的Python庫(kù)
入門簡(jiǎn)單,即便沒(méi)有多少web開(kāi)發(fā)經(jīng)驗(yàn),也能很快做出網(wǎng)站
非常適用于小型網(wǎng)站
非常適用于開(kāi)發(fā)web服務(wù)的API
開(kāi)發(fā)大型網(wǎng)站無(wú)壓力,但代碼架構(gòu)需要自己設(shè)計(jì),開(kāi)發(fā)成本取決于開(kāi)發(fā)者的能力和經(jīng)驗(yàn)
各方面性能均等于或優(yōu)于Django
Django自帶的或第三方的好評(píng)如潮的功能,F(xiàn)lask上總會(huì)找到與之類似第三方庫(kù)
Flask靈活開(kāi)發(fā),Python高手基本都會(huì)喜歡Flask,但對(duì)Django卻可能褒貶不一
Flask與關(guān)系型數(shù)據(jù)庫(kù)的配合使用不弱于Django,而其與NoSQL數(shù)據(jù)庫(kù)的配合遠(yuǎn)遠(yuǎn)優(yōu)于Django
Flask比Django更加Pythonic,與Python的philosophy更加吻合
(2)Django
Django太重了,除了web框架,自帶ORM和模板引擎,靈活和自由度不夠高
Django能開(kāi)發(fā)小應(yīng)用,但總會(huì)有“殺雞焉用牛刀”的感覺(jué)
Django的自帶ORM非常優(yōu)秀,綜合評(píng)價(jià)略高于SQLAlchemy
Django自帶的模板引擎簡(jiǎn)單好用,但其強(qiáng)大程度和綜合評(píng)價(jià)略低于Jinja
Django自帶ORM也使Django與關(guān)系型數(shù)據(jù)庫(kù)耦合度過(guò)高,如果想使用MongoDB等NoSQL數(shù)據(jù),需要選取合適的第三方庫(kù),且總感覺(jué)Django+SQL才是天生一對(duì)的搭配,Django+NoSQL砍掉了Django的半壁江山
Django目前支持Jinja等非官方模板引擎
Django自帶的數(shù)據(jù)庫(kù)管理app好評(píng)如潮
Django非常適合企業(yè)級(jí)網(wǎng)站的開(kāi)發(fā):快速、靠譜、穩(wěn)定
Django成熟、穩(wěn)定、完善,但相比于Flask,Django的整體生態(tài)相對(duì)封閉
Django是Python web框架的先驅(qū),用戶多,第三方庫(kù)最豐富,最好的Python庫(kù),如果不能直接用到Django中,也一定能找到與之對(duì)應(yīng)的移植
Django上手也比較容易,開(kāi)發(fā)文檔詳細(xì)、完善,相關(guān)資料豐富
常見(jiàn)的非關(guān)系型數(shù)據(jù)庫(kù)有:1、mongodb;2、cassandra;3、redis;4、hbase;5、neo4j。其中mongodb是非常著名的NoSQL數(shù)據(jù)庫(kù),它是一個(gè)面向文檔的開(kāi)源數(shù)據(jù)庫(kù)。
常見(jiàn)的幾種非關(guān)系型數(shù)據(jù)庫(kù):
1、MongoDB
MongoDB是最著名的NoSQL數(shù)據(jù)庫(kù)。它是一個(gè)面向文檔的開(kāi)源數(shù)據(jù)庫(kù)。MongoDB是一個(gè)可伸縮和可訪問(wèn)的數(shù)據(jù)庫(kù)。它在c++中。MongoDB同樣可以用作文件系統(tǒng)。在MongoDB中,JavaScript可以作為查詢語(yǔ)言使用。通過(guò)使用sharding MongoDB水平伸縮。它在流行的JavaScript框架中非常有用。
人們真的很享受分片、高級(jí)文本搜索、gridFS和map-reduce功能。驚人的性能和新特性使這個(gè)NoSQL數(shù)據(jù)庫(kù)在我們的列表中名列第一。
特點(diǎn):提供高性能;自動(dòng)分片;運(yùn)行在多個(gè)服務(wù)器上;支持主從復(fù)制;數(shù)據(jù)以JSON樣式文檔的形式存儲(chǔ);索引文檔中的任何字段;由于數(shù)據(jù)被放置在碎片中,所以它具有自動(dòng)負(fù)載平衡配置;支持正則表達(dá)式搜索;在失敗的情況下易于管理。
優(yōu)點(diǎn):易于安裝MongoDB;MongoDB Inc.為客戶提供專業(yè)支持;支持臨時(shí)查詢;高速數(shù)據(jù)庫(kù);無(wú)模式數(shù)據(jù)庫(kù);橫向擴(kuò)展數(shù)據(jù)庫(kù);性能非常高。
缺點(diǎn):不支持連接;數(shù)據(jù)量大;嵌套文檔是有限的;增加不必要的內(nèi)存使用。
2、Cassandra
Cassandra是Facebook為收件箱搜索開(kāi)發(fā)的。Cassandra是一個(gè)用于處理大量結(jié)構(gòu)化數(shù)據(jù)的分布式數(shù)據(jù)存儲(chǔ)系統(tǒng)。通常,這些數(shù)據(jù)分布在許多普通服務(wù)器上。您還可以添加數(shù)據(jù)存儲(chǔ)容量,使您的服務(wù)保持在線,您可以輕松地完成這項(xiàng)任務(wù)。由于集群中的所有節(jié)點(diǎn)都是相同的,因此不需要處理復(fù)雜的配置。
Cassandra是用Java編寫的。Cassandra查詢語(yǔ)言(CQL)是查詢Cassandra數(shù)據(jù)庫(kù)的一種類似sql的語(yǔ)言。因此,Cassandra在最佳開(kāi)源數(shù)據(jù)庫(kù)中排名第二。Facebook、Twitter、思科(Cisco)、Rackspace、eBay、Twitter、Netflix等一些最大的公司都在使用Cassandra。
特點(diǎn):線性可伸縮;;保持快速響應(yīng)時(shí)間;支持原子性、一致性、隔離性和耐久性(ACID)等屬性;使用Apache Hadoop支持MapReduce;分配數(shù)據(jù)的最大靈活性;高度可伸縮;點(diǎn)對(duì)點(diǎn)架構(gòu)。
優(yōu)點(diǎn):高度可伸縮;無(wú)單點(diǎn)故障;Multi-DC復(fù)制;與其他基于JVM的應(yīng)用程序緊密集成;更適合多數(shù)據(jù)中心部署、冗余、故障轉(zhuǎn)移和災(zāi)難恢復(fù)。
缺點(diǎn):對(duì)聚合的有限支持;不可預(yù)知的性能;不支持特別查詢。
3、Redis
Redis是一個(gè)鍵值存儲(chǔ)。此外,它是最著名的鍵值存儲(chǔ)。Redis支持一些c++、PHP、Ruby、Python、Perl、Scala等等。Redis是用C語(yǔ)言編寫的。此外,它是根據(jù)BSD授權(quán)的。
特點(diǎn):自動(dòng)故障轉(zhuǎn)移;將其數(shù)據(jù)庫(kù)完全保存在內(nèi)存中;事務(wù);Lua腳本;將數(shù)據(jù)復(fù)制到任意數(shù)量的從屬服務(wù)器;鑰匙的壽命有限;LRU驅(qū)逐鑰匙;支持發(fā)布/訂閱。
優(yōu)點(diǎn):支持多種數(shù)據(jù)類型;很容易安裝;非??欤棵雸?zhí)行約11萬(wàn)組,每秒執(zhí)行約81000次);操作都是原子的;多用途工具(在許多用例中使用)。
缺點(diǎn):不支持連接;存儲(chǔ)過(guò)程所需的Lua知識(shí);數(shù)據(jù)集必須很好地適應(yīng)內(nèi)存。
4、HBase
HBase是一個(gè)分布式的、面向列的開(kāi)源數(shù)據(jù)庫(kù),該技術(shù)來(lái)源于 Fay Chang 所撰寫的Google論文“Bigtable:一個(gè)結(jié)構(gòu)化數(shù)據(jù)的分布式存儲(chǔ)系統(tǒng)”。就像Bigtable利用了Google文件系統(tǒng)(File System)所提供的分布式數(shù)據(jù)存儲(chǔ)一樣,HBase在Hadoop之上提供了類似于Bigtable的能力。
HBase是Apache的Hadoop項(xiàng)目的子項(xiàng)目。HBase不同于一般的關(guān)系數(shù)據(jù)庫(kù),它是一個(gè)適合于非結(jié)構(gòu)化數(shù)據(jù)存儲(chǔ)的數(shù)據(jù)庫(kù)。另一個(gè)不同的是HBase基于列的而不是基于行的模式。
5、neo4j
Neo4j被稱為原生圖數(shù)據(jù)庫(kù),因?yàn)樗行У貙?shí)現(xiàn)了屬性圖模型,一直到存儲(chǔ)層。這意味著數(shù)據(jù)完全按照白板的方式存儲(chǔ),數(shù)據(jù)庫(kù)使用指針導(dǎo)航和遍歷圖。Neo4j有數(shù)據(jù)庫(kù)的社區(qū)版和企業(yè)版。企業(yè)版包括Community Edition必須提供的所有功能,以及額外的企業(yè)需求,如備份、集群和故障轉(zhuǎn)移功能。
特點(diǎn):它支持唯一的約束;Neo4j支持完整的ACID(原子性、一致性、隔離性和持久性)規(guī)則;Java API: Cypher API和本機(jī)Java API;使用Apache Lucence索引;簡(jiǎn)單查詢語(yǔ)言Neo4j CQL;包含用于執(zhí)行CQL命令的UI: Neo4j Data Browser。
優(yōu)點(diǎn):容易檢索其相鄰節(jié)點(diǎn)或關(guān)系細(xì)節(jié),無(wú)需連接或索引;易于學(xué)習(xí)Neo4j CQL查詢語(yǔ)言命令;不需要復(fù)雜的連接來(lái)檢索數(shù)據(jù);非常容易地表示半結(jié)構(gòu)化數(shù)據(jù);大型企業(yè)實(shí)時(shí)應(yīng)用程序的高可用性;簡(jiǎn)化的調(diào)優(yōu)。
缺點(diǎn):不支持分片
首先導(dǎo)入:
from django.db import connection
然后創(chuàng)建一個(gè)cursor,然后就執(zhí)行吧。
cursor = connection.cursor()
cursor.execute("select * from table")
執(zhí)行完別忘了關(guān)閉連接。
cursor.close()
我也是Django初學(xué)者,希望對(duì)樓主有用。
結(jié)合使用 MongoDB 和 Django
Django 是一種 Python Web 框架,由對(duì)象關(guān)系映射器 (ORM)、后端控制器和模板系統(tǒng)組成。MongoDB 是一種面向文檔的數(shù)據(jù)庫(kù)(也稱為 NoSQL 數(shù)據(jù)庫(kù)),能有效地進(jìn)行擴(kuò)展并提供高性能。在本文中,我們將學(xué)習(xí)如何從 Python 調(diào)用 MongoDB(使用 MongoEngine),以及如何將它集成到 Django 項(xiàng)目中以代替內(nèi)置的 ORM。本文還包括用來(lái)為 MongoDB 后端創(chuàng)建、讀取和更新數(shù)據(jù)的樣例 Web 界面。
當(dāng)前文章:包含nosqldjango的詞條
本文來(lái)源:http://jinyejixie.com/article32/dssidsc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供響應(yīng)式網(wǎng)站、企業(yè)網(wǎng)站制作、網(wǎng)站設(shè)計(jì)、標(biāo)簽優(yōu)化、網(wǎng)站建設(shè)、網(wǎng)站營(yíng)銷
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)