django自帶資料庫
『壹』 Django搭配什麼資料庫
Django默認的資料庫是sqlite,也可以使用其它主流的資料庫,推薦使用Mysql
『貳』 python中,django框架模式有什麼
Django發布於2005年,是當前Python世界裡最負盛名且成熟的網路框架,最初用來製作在線新聞的Web站點。
Django是一個用Python編寫的開放源代碼的Web應用框架,採用了MVC的框架模式,也有很多人把它稱為MVT模式。
優點:
功能完善且要素齊全:自帶大量常用的工具和框架,適合快速開發企業級網站;
完善的文檔:經過十多年的發展和完善,Django有廣泛的實踐案例和完善的在線文檔,開發者遇到問題可以搜索在線文檔尋求解決方案;
強大的資料庫訪問組件:Django的Model層自帶資料庫ORM組件,使得開發者無需學習SQL語言即可對資料庫進行操作;
先進的APP設計理念:APP是可插拔的,是不可多得的思想,不需要了可以直接刪除,對系統整體影響不大;
自帶台管理系統admin:只需要通過簡單幾行配置和代碼就可以實現一個完整的後台數據管理控制平台。
缺點:
大包大攬:對比flask框架來講,Django不夠輕便,包括的功能太多了;
過度封裝:很多類和方法都封裝了,直接使用比較簡單,改動比較困難;
性能劣勢:Django性能偏低;
模板問題:Django的模板實現了代碼和樣式完全分離,不允許模板里出現Python代碼,靈活度對某些程序員來說可能不夠。
『叄』 Django 是不是不用寫後台的,用自帶的 admin 管理資料庫就行了
Django是個框架,後台是固定的,只可以小范圍修改,差不多算是不用些後台
『肆』 django 資料庫使用
在django程序外部使用django models,我給你端示例代碼你看看:
fromdjango.core.managementimportsetup_environ
importQB.settings
setup_environ(QB.settings)
fromrecharge.modelsimportOrder,FailGetOrder
QB是我的project名稱,recharge是我的app名稱
『伍』 【Python基礎】django默認資料庫是什麼
沒有配置的話默認資料庫是sqlite,可以在setting里的DATABASES進行資料庫配置
『陸』 django支持哪些資料庫
常見的關系資料庫postgresql、mysql、oracle、sqlite這些都支持,官方優先推薦PostgreSQL關系資料庫。
除上面之外還支持以下數據源:
SAP SQL Anywhere
IBM DB2
Microsoft SQL Server
Firebird
ODBC
『柒』 django怎麼使用本機mysql資料庫
step 1:
修改你的django project目錄下的settings.py 文件至如下所示:
其中,'NAME' 對應的 『db_name' 是你事先使用mysql
的命令行提示符創建的資料庫名稱。注意:在django使用資料庫之前,你必須先創建出資料庫,否則會報錯。'USER'對應的'username'
還有 'PASSWORD' 對應的『passwd'
就是你在mysql中創建的用戶名和密碼。如果你有多個的話,隨便填一個就好。'HOST'和'PORT'默認都可以不填。
題外話: 使用用戶名和密碼登錄mysql的方法:
首先,你需要進入 mysql/bin的目錄下,也可以在.bash_profile中設置環境變數:
PATH=/usr/local/bin:/usr/bin:/bin:/sbin:/usr/sbin:/usr/local/sbin:/usr/local/Cellar/mysql/5.6.22/bin/
再在prompt輸入 mysql -u username -p, 回車後再輸入 passwd即可
step 2:
然後,在manage.py路徑中使用python manage.py syncdb 試試,結果會提示你錯誤找不到 MySQLdb 這個mole, 為什麼呢, 因為 python manage.py syncdb 命令是這樣工作的:
1. 在project目錄的settings.py的INSTALLED_APPS元組中找到可能需要更新的APP。
2. 找到每一個APP目錄中的models.py (關系定義文件),並針對變化在資料庫中進行更新。
說了這么多,前面那個錯誤 找不到 mole MySQLdb 是什麼意思啊 ?
先給個圖,再解釋:
因為在models.py中定義關系使用的是python,而真正在資料庫中操作形成model當然一定要用sql語句,所以必須要有一些功能模塊
來把python語句轉化成sql語句。如果你使用sqlite的話,由於sqlite和轉化模塊都已經由python內置了,所以直接使用不會發生錯
誤。但是 」mysql語句的轉化模塊「 就需要你手動載入了,這些模塊放在 MySQL-python 中。
我是使用pip 安裝的:
安裝了之後,再使用 python manage.py syncdb就OK啦。
我使用的系統是 OS X,下面是 mysql 默認的安裝路徑
/usr/local/Cellar/mysql/5.6.22/
如果你想知道你的資料庫文件是放在哪裡的,你可以查看mysql_config文件中的ldata變數,這個變數的值就是 默認的資料庫文件夾存儲的路徑。 我的系統中,mysql_config的完整路徑是 :
/usr/local/Cellar/mysql/5.6.22/bin/mysql_config
『捌』 django怎樣自動創建資料庫table
django創建資料庫表方法如下:
catcher:mysitecatcher$pythonmanage.pymakemigrationsbooks
Migrationsfor'books':
0001_initial.py:
-CreatemodelAuthor
-CreatemodelBook
-CreatemodelPublisher
-Addfieldpublishertobook
catcher:mysitecatcher$pythonmanage.pysqlmigratebooks0001
BEGIN;
--
--CreatemodelAuthor
--
CREATETABLE"books_author"("id","first_name"varchar(30)NOTNULL,"last_name"varchar(40)NOTNULL,"email"varchar(254)NOTNULL);
--
--CreatemodelBook
--
CREATETABLE"books_book"("id","title"varchar(100)NOTNULL,"publication_date"dateNOTNULL);
CREATETABLE"books_book_authors"("id","book_id"integerNOTNULLREFERENCES"books_book"("id"),"author_id"integerNOTNULLREFERENCES"books_author"("id"));
--
--CreatemodelPublisher
--
CREATETABLE"books_publisher"("id","name"varchar(30)NOTNULL,"address"varchar(50)NOTNULL,"city"varchar(60)NOTNULL,"state_province"varchar(30)NOTNULL,"country"varchar(50)NOTNULL,"website"varchar(200)NOTNULL);
--
--Addfieldpublishertobook
--
ALTERTABLE"books_book"RENAMETO"books_book__old";
CREATETABLE"books_book"("id","title"varchar(100)NOTNULL,"publication_date"dateNOTNULL,"publisher_id"integerNOTNULLREFERENCES"books_publisher"("id"));
INSERTINTO"books_book"("publication_date","publisher_id","id","title")SELECT"publication_date",NULL,"id","title"FROM"books_book__old";
DROPTABLE"books_book__old";
CREATEINDEX"books_book_2604cbea"ON"books_book"("publisher_id");
COMMIT;
catcher:mysitecatcher$
catcher:mysitecatcher$sudopythonmanage.pymigratePassword:Operationstoperform:Applyallmigrations:admin,contenttypes,books,auth,sessionsRunningmigrations:Renderingmodelstates...DONEApplyingcontenttypes.0001_initial...OKApplyingauth.0001_initial...OKApplyingadmin.0001_initial...OKApplyingadmin.0002_logentry_remove_auto_add...OKApplyingcontenttypes.0002_remove_content_type_name...OKApplyingauth.0002_alter_permission_name_max_length...OKApplyingauth.0003_alter_user_email_max_length...OKApplyingauth.0004_alter_user_username_opts...OKApplyingauth.0005_alter_user_last_login_null...OKApplyingauth.0006_require_contenttypes_0002...OKApplyingauth.0007_alter_validators_add_error_messages...OKApplyingbooks.0001_initial...OKApplyingsessions.0001_initial...OKcatcher:mysitecatcher$
『玖』 什麼是django
Django是用Python開發的一個免費開源的Web框架,提供了許多網站後台開發經常用到的模塊,使開發者能夠專注於業務部分。並且囊括的Web應用部分可以用於快速搭建高性能、優雅的網站。並且提供了通用Web開發模式的高度抽象,通過DRY的理念為頻繁進行的編程作業提供了快速解決方法。
Django能在開源發行之後吸引眾多追隨者,離不開它所具備的以下優點:
①齊全的功能。自帶大量常用工具和框架,可輕松、迅速開發出一個功能齊全的Web應用。
②完善的文檔。Django已發展十餘年,具有廣泛的實踐案例,同時Django提供完善的在線文檔,Django用戶能夠更容易地找到問題的解決方案。
③強大的資料庫訪問組件。Django自帶一個面向對象的、反映數據模型與關系型資料庫間的映射關系的映射器,開發者無須學習SQL語言即可操作資料庫。
④靈活的URL映射。Django提供一個基於正則表達式的URL分發器,開發者可靈活地編寫URL。
⑤豐富的模板語言。Django模板語言功能豐富,支持自定義模板標簽;Django也支持使用第三方模板系統,如jinja2等。
⑥健全的後台管理系統。Django內置了一個後台數據管理系統,經簡單配置後,再編寫少量代碼即可使用完整的後台管理功能。
⑦完整的錯誤信息提示。Django提供了非常完整的錯誤信息提示和定位功能,可在開發調試過程中快速定位錯誤或異常。
⑧強大的緩存支持。Django內置了一個緩存框架,並提供了多種可選的緩存方式。
⑨國際化。Django包含了一個國際化系統,Django組件支持多種語言。