Django 基础

一、什么是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 重定向)

原文地址:https://www.cnblogs.com/xiaowangba9494/p/11514611.html