---恢復內容開始---python
Django採用MVC架構設計的開源的WEB 快速開發框架mysql
優勢 :正則表達式
可以快速的開發,如 Auth,Cache, 模板sql
MVC設計模式shell
實用的管理後臺數據庫
自帶ORM, Template,Form,Auth核心組件django
簡潔的URL 設計設計模式
周邊插件豐富架構
缺點:oracle
框架中,由於東西大而全
同步阻塞
因此Django的設計目標就是一款大而全,便於企業快速開發 項目的框架,所以企業應用較廣
python使用3。6.x
Django下載地址:https://www.djangoproject.com/download/
本次使用Django 1.11 版本,它也是長期支持版本LTS, 請在虛擬環境中安裝
在虛擬環路徑中,Lib/site-packages/django/bin 下有一個 django-admin.py ,從它開始
$ diango-admin --version
$ diango-admin
1 (blog2) F:\Python項目\blog12>django-admin 2 3 Type 'django-admin help <subcommand>' for help on a specific subcommand. 4 5 Available subcommands: 6 7 [django] 8 check 9 compilemessages 10 createcachetable 11 dbshell 12 diffsettings 13 dumpdata 14 flush 15 inspectdb 16 loaddata 17 makemessages 18 makemigrations 19 migrate 20 runserver 21 sendtestemail 22 shell 23 showmigrations 24 sqlflush 25 sqlmigrate 26 sqlsequencereset 27 squashmigrations 28 startapp 29 startproject 30 test 31 testserver 32 Note that only Django core commands are listed as settings are not properly configured (error: Requested setting INSTALLED_APPS, but settings are 33 not configured. You must either define the environment variable DJANGO_SETTINGS_MODULE or call settings.configure() before accessing settings.).
注意:沒有特殊聲明,全部的操做都在項目根目錄下
$ django-admin startproject blog . 注意最後有一個點
不然:會出現兩層blog
正常:
上面明亮就在當前項目的根目錄中構建了Django項目的初始文件, 點 表明項目根目錄
重要文件說明:
使用數據庫,須要修改默認的數據庫配置
在主項目的settings.py下的DATABASES, 默認使用的是sqllite,修改成mysql
1 DATABASES = { 2 'default': { 3 'ENGINE':'diango.db.backends.mysql', 4 'NAME': 'blog', 5 'USER':'root', 6 'PASSWORD':'123456', 7 'HOST':'192.168.112.110', 8 'PORT':'3306' 9 } 10 }
HSOT 數據庫主機,缺省是空字符串,表明localhost, 如果「/」 開頭表示使用Unix Socket 鏈接
OPTIONS 選項,字典,參考MySQL文檔
內建的引擎有:
六、MySQL數據庫驅動
https://docs.djangoproject.com/en/2.0/ref/databases/
Django 支持mysql 5.5 +
Django 官方推薦使用本地驅動 mysqlclient 1.3.7 +
$ pip install mysqlclient,( 可是報錯)
下載地址 ;https://www.lfd.uci.edu/~gohlke/pythonlibs/
建立用戶應用:$ python manage.py startapp user
可能會報錯,我是用的3.7版本,報錯:
解決辦法:
該應用完成 一下功能
用戶註冊
用戶登陸
建立應用後,項目根目錄下產生一個 user目錄,有以下文件:
在settings.py中增長user應用,目的是爲了後臺管理admin使用,或遷移migrate使用
字段選項:注意 default不是建立數據庫建立時的不填的初始值
關係類型字段類:
一對多時,自動建立會增長_id 後綴
基類models.Model
表名不指定默認使用<appname>_<model_name>
1 from django.db import models 2 3 # Create your models here. 4 5 class User(models.Model): 6 class Meta: 7 db_table = 'user' 8 id = models.AutoField(primary_key=True) 9 name = models.CharField(max_length=48, null=False) 10 email = models.CharField(max_length=48,unique=True, null=False) 11 password = models.CharField(max_length=128, null=False) 12 13 def __repr__(self): 14 return '<user{}{}'.format(self.id, self.name)
遷移:從模型定義生成數據庫的表
一、生成遷移文件
修改過Model類,還須要調用makemigrations ,而後migrate,遷移文件的序號會增長
注意:遷移的應用必須在settings.py 的INSTALLED_APPS中註冊
二、執行遷移生成數據庫的表
執行了遷移,還同時生成了admin管理用的表
查看數據庫,user表建立好,字段設置正常
若是修改 models.py 後,在遷移,會產生新的文件:
---恢復內容結束---
Django採用MVC架構設計的開源的WEB 快速開發框架
優勢 :
可以快速的開發,如 Auth,Cache, 模板
MVC設計模式
實用的管理後臺
自帶ORM, Template,Form,Auth核心組件
簡潔的URL 設計
周邊插件豐富
缺點:
框架中,由於東西大而全
同步阻塞
因此Django的設計目標就是一款大而全,便於企業快速開發 項目的框架,所以企業應用較廣
python使用3。6.x
Django下載地址:https://www.djangoproject.com/download/
本次使用Django 1.11 版本,它也是長期支持版本LTS, 請在虛擬環境中安裝
在虛擬環路徑中,Lib/site-packages/django/bin 下有一個 django-admin.py ,從它開始
$ diango-admin --version
$ diango-admin
1 (blog2) F:\Python項目\blog12>django-admin 2 3 Type 'django-admin help <subcommand>' for help on a specific subcommand. 4 5 Available subcommands: 6 7 [django] 8 check 9 compilemessages 10 createcachetable 11 dbshell 12 diffsettings 13 dumpdata 14 flush 15 inspectdb 16 loaddata 17 makemessages 18 makemigrations 19 migrate 20 runserver 21 sendtestemail 22 shell 23 showmigrations 24 sqlflush 25 sqlmigrate 26 sqlsequencereset 27 squashmigrations 28 startapp 29 startproject 30 test 31 testserver 32 Note that only Django core commands are listed as settings are not properly configured (error: Requested setting INSTALLED_APPS, but settings are 33 not configured. You must either define the environment variable DJANGO_SETTINGS_MODULE or call settings.configure() before accessing settings.).
注意:沒有特殊聲明,全部的操做都在項目根目錄下
$ django-admin startproject blog . 注意最後有一個點
不然:會出現兩層blog
正常:
上面明亮就在當前項目的根目錄中構建了Django項目的初始文件, 點 表明項目根目錄
重要文件說明:
使用數據庫,須要修改默認的數據庫配置
在主項目的settings.py下的DATABASES, 默認使用的是sqllite,修改成mysql
1 DATABASES = { 2 'default': { 3 'ENGINE':'diango.db.backends.mysql', 4 'NAME': 'blog', 5 'USER':'root', 6 'PASSWORD':'123456', 7 'HOST':'192.168.112.110', 8 'PORT':'3306' 9 } 10 }
HSOT 數據庫主機,缺省是空字符串,表明localhost, 如果「/」 開頭表示使用Unix Socket 鏈接
OPTIONS 選項,字典,參考MySQL文檔
內建的引擎有:
六、MySQL數據庫驅動
https://docs.djangoproject.com/en/2.0/ref/databases/
Django 支持mysql 5.5 +
Django 官方推薦使用本地驅動 mysqlclient 1.3.7 +
$ pip install mysqlclient,( 可是報錯)
下載地址 ;https://www.lfd.uci.edu/~gohlke/pythonlibs/
建立用戶應用:$ python manage.py startapp user
可能會報錯,我是用的3.7版本,報錯:
解決辦法:
該應用完成 一下功能
用戶註冊
用戶登陸
建立應用後,項目根目錄下產生一個 user目錄,有以下文件:
在settings.py中增長user應用,目的是爲了後臺管理admin使用,或遷移migrate使用
字段選項:注意 default不是建立數據庫建立時的不填的初始值
關係類型字段類:
一對多時,自動建立會增長_id 後綴
基類models.Model
表名不指定默認使用<appname>_<model_name>
1 from django.db import models 2 3 # Create your models here. 4 5 class User(models.Model): 6 class Meta: 7 db_table = 'user' 8 id = models.AutoField(primary_key=True) 9 name = models.CharField(max_length=48, null=False) 10 email = models.CharField(max_length=48,unique=True, null=False) 11 password = models.CharField(max_length=128, null=False) 12 13 def __repr__(self): 14 return '<user{}{}'.format(self.id, self.name)
遷移:從模型定義生成數據庫的表
一、生成遷移文件
修改過Model類,還須要調用makemigrations ,而後migrate,遷移文件的序號會增長
注意:遷移的應用必須在settings.py 的INSTALLED_APPS中註冊
二、執行遷移生成數據庫的表
執行了遷移,還同時生成了admin管理用的表
查看數據庫,user表建立好,字段設置正常
若是修改 models.py 後,在遷移,會產生新的文件:
在user應用的admin.py 添加
user就能夠在後臺增生改查了
路由功能就是實現URL模式匹配和處理函數之間的映射
路由配置要在項目的urls.py 中配置,也能夠多級配置,在每個應用中,創建一個urls.py文件配置路由映射
url函數
url( regex, view, kwargs=None, name=None ) 進行模式匹配
regex:正則表達式,與之匹配的URL 會執行對應的第二個參數view
view:用於執行與正則表達式匹配的URL
kwargs:視圖使用的字典類型的參數
name:用來反向獲取URL
urls.py 內容以下:
測試:
url(r'index', index),# 127.0.0.1:8000/index 只能這樣訪問
url(r'index/', index), # 127.0.0.1:8000/index/ 必須把 / 加上
url(r'index/$', index) # index 後面自動加 /
經常使用屬性打印:(默認是GET)
打印二:(GET)
請求信息測試 和JSON 響應:
在項目中首頁 多數使用HTML 顯示,爲了加載速度快,通常多使用靜態頁面。
若是首頁內容多,還有部分數據須要變化,將變化部分使用AJAX技術從後臺獲取數據
本次,爲了學習模板技術,只將首頁採用Django的模板技術實現
使用Postman 工具調試
GET
POST: