下載安裝css
命令行:pip3 install django==1.11.21html
pycharmpython
建立項目mysql
命令行:sql
找一個文件夾存放項目文件,打開終端:數據庫
django-admin startproject 項目名稱django
項目目錄app
pycahrmide
啓動函數
命令行
切換到項目的根目錄下 manage.py
python36 manage.py runserver
—— 127.0.0.1:80`
python36 manage.py runserver 80
——127.0.0.1:80
python36 manage.py runserver 0.0.0.0:80
——0.0.0.0:80
pycharm:點綠三角啓動 可配置
簡單使用
示例:返回HTML指定文件
# 在urls.py中 # 導入 from django.shortcuts import HttpResponse,render # 函數 def index(request): # return HttpResponse('index') return render(request,'index.html') # url和函數對應關係 urlpatterns = [ url(r'^admin/', admin.site.urls), url(r'^index/', index), ]
配置
在settings.py中設置
STATIC_URL = '/static/' # 別名 STATICFILES_DIRS = [ # 設置文件路徑,能夠設置多個 os.path.join(BASE_DIR, 'static1'), os.path.join(BASE_DIR, 'static'), os.path.join(BASE_DIR, 'static2'), ]
使用
在路徑前添加別名:/static/
多個文件路徑,也是使用同一個別名,不是文件名
若是別名後的路徑名相同,按照STATICFILES_DIRS列表的順序進行查找
<link rel="stylesheet" href="/static/css/login.css"> {# 別名開頭 #}
form表單提交數據注意的問題:
提交的地址:action="",請求的方式:method="post"
全部的input框有name屬性,如name="username"
有一個input框的type="submit"或者有一個button
提交post請求,因爲Django中有一個csrf校驗,全部請求會出問題
解決方式:把settings中MIDDLEWARE的'django.middleware.csrf.CsrfViewMiddleware'註釋掉
重定向
導入:from django.shortcuts import redirect
使用方式
# 在函數中使用,例如 return redirect('/index/') # 參數:路徑url # 注意:前面必須加/,表明從url根拼接,不然就會在當前url後面一直拼接
from django.shortcuts import HttpResponse, render, redirect def index(request): # return HttpResponse('index') return render(request, 'index.html') def login(request): if request.method == 'POST': # 獲取form表單提交的書籍 username = request.POST['username'] password = request.POST['password'] # 驗證用戶名和密碼 if models.User.objects.filter(username=username,password=password): # 驗證成功跳轉到index頁面 # return redirect('https://www.baidu.com/') return redirect('/index/') # 不成功 從新登陸 return render(request, 'login.html') urlpatterns = [ url(r'^admin/', admin.site.urls), url(r'^index/', views.index), url(r'^login/', views.login), ]
建立app
命令行:python manage.py startapp app名稱
pycharm:tools --> run manage.py task --> 輸入命令:startapp app名稱
註冊app
在settings.py中設置,例:app名爲app01
INSTALLED_APPS = [ ... 'app01', 'app01.apps.App01Config', # 推薦寫法 ]
app中的文件
migrations:存放遷移文件的
admin.py:Django提供的後臺管理工具
app.py:與app信息相關的
models.py:跟ORM有關的內容
views.py:視圖,寫函數的
建立一個MySQL數據庫:create database day53;
在settings.py中設置,Django鏈接MySQL數據庫:
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', # 引擎 'NAME': 'day53', # 數據庫名稱 'HOST': '127.0.0.1', # ip地址 'PORT':3306, # 端口 'USER':'root', # 用戶 'PASSWORD':'123' # 密碼 } }
在與settings,py同級目錄下的init文件中寫入:
import pymysql pymysql.install_as_MySQLdb()
建立表(在app下的models.py中寫類):
from django.db import models class User(models.Model): username = models.CharField(max_length=32) # username varchar(32) password = models.CharField(max_length=32) # username varchar(32)
執行數據庫遷移的命令:
python manage.py makemigrations:檢測每一個註冊app下的model.py,記錄model的變動記錄
python manage.py migrate:同步變動記錄到數據庫中
MVC
M: model 模型 —— 和數據庫打交道
V:view 視圖 —— HTML
C: controller 控制器 —— 調度 傳遞指令 業務邏輯
MTV:
M: model 模型 ORM —— 和數據庫打交道
T: tempalte 模板 —— HTML
V:view 視圖 —— 函數 業務邏輯
djando是MTV模式