初识 Django

Django介绍

HTTP协议:

定义:超文本传输协议:规定了客户端与服务端消息传输的格式

四大特性:

1.基本TCP/IP 协议做用于应用层的协议
        2.基于请求响应
        3.无状态
        4.无链接

数据格式之请求:

请求首行
        请求头(一堆k,v键对))
         (空格)
        请求体(post请求携带的数据)

数据格式之响应:

响应首行
        响应头(一堆k,v键对)
         (空格)
        响应体(post请求携带的数据)

响应状态码:

1xx:服务器已经成功接收到你的数据正在处理,你能够继续提交数据
        2xx:请求成功 服务器已经成功接收到你的数据发送给你了
        3xx:重定向
        4xx:请求资源错误/不存在
        5xx:服务器错误

动静态网页

静态网页:
    页面上的数据都是写死的,万年不变
  动态网页:
    页面上的数据是从后端动态获取的
    好比后端获取当前时间
    后端获取数据库数据而后传递给前端页面

模板渲染

后端生成的数据直接传递给前端页面使用(而且前端页面能够灵活的操做改数据) >>> 模板语法

模板渲染 模板语法须要依赖于第三方模块
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 %}


什么是web框架?

python三大主流web框架
    Django:大而全,自带了不少功能模块,相似于航空母舰 (缺点:有点笨重)
    Flask:短小精悍,自带的功能模块特别少,大部分都是依赖于第三方模块(小而轻)
    Tornado:异步非阻塞 主要用在处理高io 多路复用的状况 能够写游戏后端
    
a:socket
b:路由与视图函数
c:模板渲染

Django:
    a用的别人的 wsgiref
    b本身写的
    c本身写的
Flask:
    a用的别人的 werkzeug
    b本身写的
    c用的别人的 jinja2
Tornado:
    a,b,c都是本身写的

Django安装配置

安装 :pip3 install django==1.11.11
1、 使用 :django-admin startproject 项目名称
        建立app :cd 项目名称  python3 manage.py startapp app01(子项目)

    文件目录介绍:
        
    
        -项目名
        ----settings:全局配置信息
        ----urls:总路由,请求地址跟视图函数的映射关系
        -应用名
        ----mingrations:数据库迁移记录
        ----admin.py:Django后台管理相关
        ----models.py 数据库表模型
        ----views 视图函数()

        --static 存放(静态文件、css、js、img)
        --templates : html存放
        --manage.py ---项目入口,执行一些命令
        
2、新建目录
    -static 存放静态文件(css、文件) 在settings中 TEMPLATES中查看路径存不存在
        STATICFILES_DIRS=[os.path.join(BASE_DIR,'static')]
    -templates  html存放,在settings中 TEMPLATES中查看路径存不存在 
        
3、配置settings.py
    (1)每新建一个app必须在配置文件中注册:在 INSTALLED_APPS 下添加 'app01.apps.App01Config'
    (2)TEMPLATES  中'DIRS':[
            os.path.join(BASE_DIR, 'templates')
            ]
    (3)在配置文件最后加 :STATICFILES_DIRS=[
            os.path.join(BASE_DIR,'static'),
          ]
    (4)要把 MIDDLEWARE 中(注释掉)...CsrfViewMiddleware
4、数据库建表迁移指令
    python3 manage.py makemigrations
    python3 manage.py migrate
5、执行项目:
    python3 manage.py runserver 127.0.0.1:8001

django小白必会三板斧

引用:

from django.shortcuts import render,HttpResponse,redirect

⑴ HttpResponse : 返回字符串

⑵ redirect :重定向

⑶ render : 返回一个html页面

render 两种给前端页面传值的方式
def reg(request):
        user_dict = {'name':'jason','password':'123'}
        return render(request,'reg.html',{'user_dict':user_dict})

    def reg(request):
        user_dict = {'name':'jason','password':'123'}
        return render(request,'reg.html',locals())

相关文章
相关标签/搜索