【前言】前面(一)學習了web的基礎知識,介紹到了MVC,項目使用一個Django框架。html
Django book:https://code.ziqiangxuetang.com/django/django-tutorial.html前端
具體介紹Django以前,必須先介紹WEB框架等概念。web框架: 別人已經設定好的一個web網站模板,你學習它的規則,而後「填空」或「修改」成你本身須要的樣子。python
通常web框架的架構是這樣的:mysql
其它基於python的web框架,如tornado、flask、webpy都是在這個範圍內進行增刪裁剪的。例如tornado用的是本身的異步非阻塞「wsgi」,flask則只提供了最精簡和基本的框架。Django則是直接使用了WSGI,並實現了大部分功能。web
2、MVC概念到MTV的變化sql
仔細看,有助於理解django的項目框架:https://www.cnblogs.com/YeChing/p/6339969.html數據庫
[root@localhost helloworld]# tree . ├── db.sqlite3 #django自帶的數據庫,python也自帶操做函數 ├── helloworld │ ├── __init__.py #包 │ ├── __init__.pyc │ ├── search2.py │ ├── search2.pyc │ ├── search.py #http通訊的表單提交。get post │ ├── search.pyc │ ├── settings.py #此Diango項目的設置/配置文件,包括模板路徑,數據庫鏈接 │ ├── settings.pyc │ ├── testdb.py #建立的數據庫對象,增刪改查 │ ├── testdb.pyc │ ├── urls.py #項目的URL聲明,由此django驅動的網站的目錄 │ ├── urls.pyc │ ├── view.py #在此的view向templates提交數據 │ ├── view.pyc │ ├── wsgi.py # WSGI 兼容的 Web 服務器的入口,以便運行你的項目。 │ └── wsgi.pyc ├── manage.py #命令行工具,可以讓咱們以各類方式與該 Django 項目進行交互 ├── templates #視圖文件創建在這裏,接收數據來視圖輸出。須要在settings.py中修改 │ ├── base.html #TEMPLATES 中的 DIRS 爲 [BASE_DIR+"/templates",] │ ├── hello.html │ ├── post.html #這些模板可經過{% extends "base.html" %}繼承base.html │ └── search_form.html └── TestModel #使用模型,須要建立app ├── admin.py ├── admin.pyc ├── apps.py ├── __init__.py ├── __init__.pyc ├── migrations │ ├── 0001_initial.py │ ├── 0001_initial.pyc │ ├── __init__.py │ └── __init__.pyc ├── models.py #類名至關於數據庫表名 ├── models.pyc ├── tests.py └── views.py
3、django的特色django
一、開啓服務器以後,修改代碼後只要保存,刷新一下前端就能馬上生效,無需從新啓動。因此,對於我不擅長的html語言,能夠頻繁修改看現象。flask
二、表名組成結構爲:應用名_類名(如:TestModel_test)。瀏覽器
#一、 django-admin startapp TestModel # 二、models.py。類名就是表名,類裏面的字段表明數據表中的字段(name),數據類型則由CharField(至關於varchar)、DateField(至關於datetime), max_length 參數限定長度。 from django.db import models class Test(models.Model): name = models.CharField(max_length=20) #三、 INSTALLED_APPS = ( 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'TestModel', # 添加此項 ) #四、在數據庫中建立表 $ python manage.py migrate # 建立表結構 $ python manage.py makemigrations TestModel # 讓 Django 知道咱們在咱們的模型有一些變動 $ python manage.py migrate TestModel # 建立表結構 #五、建立的表名:應用名_表名 Creating tables ... …… Creating table TestModel_test #咱們自定義的表 ……
三、ORM操做
Django的orm操做本質上會根據對接的數據庫引擎,翻譯成對應的sql語句;全部使用Django開發的項目無需關心程序底層使用的是MySQL、Oracle、sqlite....,若是數據庫遷移,只須要更換Django的數據庫引擎便可;
Djan提供了不少字段類型,好比URL/Email/IP/ 可是mysql數據沒有這些類型,這類型存儲到數據庫上本質是字符串數據類型,其主要目的是爲了封裝底層SQL語句;
例如:字符串類(如下都是在數據庫中本質都是字符串數據類型,此類字段只是在Django自帶的admin中生效)
name=models.CharField(max_length=32) #models.CharField 對應的是MySQL的varchar數據類型
EmailField(CharField): IPAddressField(Field) URLField(CharField) SlugField(CharField)
更詳細參考:https://www.cnblogs.com/sss4/p/7070942.html
4、實現瀏覽器--Django--MySQL的信息實戰
https://www.cnblogs.com/feixuelove1009/p/5823135.html
5、各類操做
一、Django中models對數據庫的操做。models的各類操做:https://www.cnblogs.com/yangmv/p/5327477.html
二、經過前端「按鈕」,對數據庫進行增刪改查:https://blog.csdn.net/Panda_Murong/article/details/78894388
三、ORM獲取數據的三種方式:https://www.cnblogs.com/littlesky1124/p/9157464.html