一、什么是web框架
python三大主流web框架
Django:大而全,自带了很多功能模块,缺点有点笨重
Flask:短小精悍,自带功能模块少,大部分依赖于第三方模块
Tornado:异步非阻塞,主要用在处理高io多路复用的情况
二、web请求流程图
wsgiref模块:替换web框架的socket server部分
jinja2:模板渲染 (下载:pip install jinja2)
模板语法: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)
三、Django
1、下载安装
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 ;支持简写)
3、目录介绍:
mysite/ ├── manage.py # 管理文件 └── mysite # 项目目录 ├── __init__.py ├── settings.py # 配置 ├── urls.py # 路由 --> URL和函数的对应关系 └── wsgi.py # runserver命令就使用wsgiref模块做简单的web server
4、运行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', ]
四、Django基础必备三件套
from django.shortcuts import HttpResponse, render, redirect
HttpResponse:内部传一个字符串参数,返回给浏览器
render:除request参数外,还接受一个带渲染的模板文件和一个保存具体数据的字典参数
将数据填充进模板文件,最后把结果返回给浏览器
redirect:接收URL参数,表示跳转到指定的URL(3xx 重定向)