1、什麼是web框架html
python三大主流web框架前端
Django:大而全,自帶了不少功能模塊,缺點有點笨重python
Flask:短小精悍,自帶功能模塊少,大部分依賴於第三方模塊web
Tornado:異步非阻塞,主要用在處理高io多路複用的狀況django
2、web請求流程圖瀏覽器
wsgiref模塊:替換web框架的socket server部分session
jinja2:模板渲染 (下載:pip install jinja2)app
模板語法:jinja2支持前端直接使用相似於python的語法操做數據框架
<p>{{ user_dic }}</p> <p>{{ user_dic.name }}</p> <p>{{ user_dic['password'] }}</p> <p>{{ user_dic.get('name') }}</p> {% for user in user_dict %} <!--[{},{},{},{}]--!> <tr> <td>{{ user.id }}</td> <td>{{ user.name }}</td> <td>{{ user.password }}</td> </tr> {% endfor %}
urls.py:路由與視圖函數的映射關係異步
views.py:視圖函數
templates:該文件夾存放就是全部的頁面文件(.html)
3、Django
一、下載安裝
pip3 install django==1.11.11
django-admin 驗證是否下載成功
2.1命令行建立
1.建立一個名爲mysite的Django項目
2.app應用
3.啓動django項目
ps:命令行建立django默認不會自動建立templates文件,須要手動配置
1.django-admin startproject mysite
2.python3 mange.py startapp app01
3.python3 mamage.py runserver
2.2pycharm建立
FILE >>> new project 選擇第二個django 須要注意名字不能有中文,選擇本地的解釋器,勾選後臺管理
建立app
pycharm命令行建立:python3 manage.py startapp app01(全程app01.apps.App01Config ;支持簡寫)
三、目錄介紹:
mysite/ ├── manage.py # 管理文件 └── mysite # 項目目錄 ├── __init__.py ├── settings.py # 配置 ├── urls.py # 路由 --> URL和函數的對應關係 └── wsgi.py # runserver命令就使用wsgiref模塊作簡單的web server
四、運行Django項目:
python manage.py runserver 127.0.0.1:8000
模板文件配置:
TEMPLATES = [ { 'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': [os.path.join(BASE_DIR, "template")], # template文件夾位置 'APP_DIRS': True, 'OPTIONS': { 'context_processors': [ 'django.template.context_processors.debug', 'django.template.context_processors.request', 'django.contrib.auth.context_processors.auth', 'django.contrib.messages.context_processors.messages', ], }, }, ]
靜態文件配置:
STATIC_URL = '/static/' # HTML中使用的靜態文件夾前綴 STATICFILES_DIRS = [ os.path.join(BASE_DIR, "static"), # 靜態文件存放位置 ]
剛開始學習時可在配置文件中暫時禁用csrf中間件,方便表單提交測試。
MIDDLEWARE = [ 'django.middleware.security.SecurityMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.common.CommonMiddleware', # 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware', ]
4、Django基礎必備三件套
from django.shortcuts import HttpResponse, render, redirect
HttpResponse:內部傳一個字符串參數,返回給瀏覽器
render:除request參數外,還接受一個帶渲染的模板文件和一個保存具體數據的字典參數
將數據填充進模板文件,最後把結果返回給瀏覽器
redirect:接收URL參數,表示跳轉到指定的URL(3xx 重定向)