1.剛進公司的時候咱們的版本比較老舊,後來由於維護的擴展且1.8版本也開始再也不維護,今年將開始使用1.11.11版本咱們這裏也統一使用1.11.11
2.計算機名不能是中文,項目也不要用中文
3.使用前關閉瀏覽器緩存
4.必定要從右上角點擊啓動 不要右鍵運行
5.每建立一個app都把他添加到INSTALLED_APPS
6.爲了安全方式異網提交表單,咱們能夠開啓csrf中間件,可是咱們方便學習先註釋,項目完成後再開啓,在setting的MIDDLEWARE中
7.可能會有不兼容的狀況,儘可能使用python3.6
8.用django必定要保證只有一個在運行狀態 切記切記!!!!!!!
9..一個pycharm只能有一個工程
10.沒有這個url,瀏覽器會在資源後面添加/ 繼續訪問
11.在ORM中類必定必定要繼承 models.Model
12.每次修改完表以後,必須執行數據庫遷移才能起做用
13.發送ajax的按鈕必定不能放在form表單裏
14.request.user.save() # 修改密碼必定要記得保存
1.安裝django並驗證是否安裝成功html
2.建立項目 建立apppython
3.關閉 csrfmysql
4.註冊appjquery
5.配置templateajax
6.配置靜態文件 詳見【靜態文件配置】sql
7.弄orm setting配置,orm, 輸入數據庫遷移命令建立表數據庫
8.學習路由層express
1.若是不想經過manage,py 來輸入命令能夠在 啓動tooldjango
2.會自動建立一個app而且註冊,後續須要手動註冊瀏覽器
3.瀏覽器匹配不上的話,就會加一個/重定向
在表單提交的時候必定action要注意前面是否加了/
加了就是網服務器下的資源訪問
不加是當前頁面後面的/rel去訪問
4.若是是 SyntaxError: Generator expression must be parenthesized 這個錯誤能夠修改源碼 去掉 逗號
5.request.POST 查出來至關於一個列表,get只能拿到最後一個,能夠用get_list("K")的形式 ['xzq', 'xzq']
6.query對象 沒法使用內部元素的屬性
7.在跨表查詢中,正向查找須要用到類的屬性(非表名)
8.多對多正向查找 obj.外鍵.all()
9.若是再也不視圖層使用ORM能夠增長以下代碼:
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "day58.settings")
import django
django.setup()
在導入models 使用
1.瀏覽器發送url請求
2.經過 WSGI 拿到path
3.進url 進行路由匹配
4.進入視圖函數
5.拿到html 文件經過本身的content字典 把裏面的Django{}進行替換
6.走一次中間件
3.
視圖函數處理具體頁面(經過jinja2語法把html頁面的一些佔位符替換程咱們的數據)再返回app
app返回結果爲服務器頁面(二進制)
Django就是基於B/C架構的Web應用框架,由咱們python開發
Django是一個基於MVC構造的框架。不須要考慮到C主要是T模板 稱爲 MTV模式。
pip3 install django==1.11.9
驗證下載成功
建立項目
django-admin startproject mysite
django-admin startapp appname
以上方法不能建立
templates
咱們將使用使用pycharm自帶的建立
django各個文件的做用
應用名
migrations 數據庫遷移記錄相關數據
admin.py django後臺管理相關
models.py 模型表相關
views.py 視圖函數相關
項目名
settings.py 配置文件
urls.py 路由與視圖函數的映射關係
templates
項目用到的全部的html文件
manage.py
django入口文件
項目中__init__做用
在setting 中的MIDDLEWARE和INSTALLED_APPS
INSTALLED_APPS裏添加添加'app01.apps.App01Config', #項目下的apps.py文件.類名
1.導入視圖函數
2.發現路徑以index開頭的就把request交給index 函數處理
HttpResponse
HttpResponse (request對象,網頁文件,替換的字典)
render
redirect
重定向新的網頁 參數url
內部傳入一個字符串參數,返回給瀏覽器。
若是咱們是絕對路徑導入靜態文件
用的是路由匹配
配置STATICFILES_DIR做用:只要是STATIC_URL Request URL接口前綴 (好比xxx)
那麼就查找STATICFILES_DIR下的目錄開始找
網頁資源下的某個節點
不寫:當前頁面提交
寫了某個節點
以及 ip+端口+資源的形式
1.在setting DATABASES={ 'default':{}} 中配置
ENGINE': 'django.db.backends.mysql', 'NAME': 'day55', #數據庫名 'HOST':'127.0.0.1', 'PORT':3306, 'USER':'root', 'PASSWORD':'123'
2.替換數據庫 改成mysql的
方式1:在你的項目文件夾下面的__init__.py
方式2:也能夠在你的應用文件夾下面的__init__.py
import pymysql
pymysql.install_as_MySQLdb() # 告訴django用pymysql代替mysqldb鏈接數據庫
3.建立表
必定要繼承models.Model
from django.db import models # Create your models here. class MYSQL(models.Model): id=models.AutoField(primary_key=True) username=models.CharField(max_length=255) password=models.CharField(max_length=255)
4.在配置完 models以後
能夠在class 輸入數據庫遷移命令
python3 manage.py makemigrations 將你的數據庫變更記錄到一個小本本上(並不會幫你建立表) python3 manage.py migrate 將你的數據庫變更正在同步到數據庫中
建立對象
對象=.表.object.create(*kwargs)
查詢對象
對象=.表.object.filter(過濾條件) <QuerySet [<XXX: XXX object>]>
m1=models.XXX.filter(username=username,password=password) m1=models.XXX.all()
#建議不要使用get,get要確保 查出來對象必須只有一個,不然異常
改
m1=models.XXX(username=username,password=password) m1.save() m1=models.XXX.filter(username=username,password=password) m1.update()
刪:
jqueryset 能夠經過delete
m1=models.XXX.objects.filter(username="我是一天個哈哈哈") m1.delete()