zoukankan      html  css  js  c++  java
  • 我待Django如初恋(✪ω✪)的第一天💗

    (*▼ー(。-_-。)画风不对,如何相爱

     

    ---------------------不定时的更新又叕开始了,且更且珍惜------------------------ 

    我要每次都写一遍:前面的还没补完,以此催促不定时更新的我
    ------------------------------------------------------------------------------------------------

    在真正学习Django之前我们先通过前面学习过的知识,

    搭建一个简易版本的web框架,加深对Django的理解,

    以便于后面的学习。

    那么就先来复习一下,看看基础知识你还记得多少

    什么是web应用?

      ☼ 软件开发架构
        c/s架构
          客户端
          服务端
        b/s架构
          浏览器
          服务器
          本质:b/s架构其实也是c/s架构


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

        四大特性:
          1.基于TCP/IP协议作用于应用层的协议
          2.基于请求响应
          3.无状态
          4.无连接

      ☼ 数据格式

        请求:
          请求首行
          请求头(一堆k,v键值对)

          请求体(post请求携带的数据)

        响应:
          响应首行
          响应头(一堆k,v键值对)

          响应体(你想访问的数据资源)


        注意:无论是请求还是响应,请求头和请求体,响应头和响应体

           之间一定一定一定一定要有空格!!!!!!!!!!

      ☼ 响应状态码
          1XX 服务器已经成功接受到你的数据正在处理,

            你可以继续提交其他数据
          2XX 请求成功 服务器已经将你请求的数据发送给你了
          3XX 重定向
          4XX 请求资源不存在
          5XX 服务器错误


    动静态网页


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

    模板渲染

      后端生成的数据直接传递给前端页面使用

      (并且前端页面可以灵活的操作改数据) >>> 模板语法

      模板渲染 模板语法需要依赖于第三方模块  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 %}
    前端页面中如何使用jinja2

    简易版本的web请求流程图

        

        templates:该文件夹存放就是所有的页面文件(.html)
      


    手撸web简易版本的web框架

      ▷什么是web框架?
        python三大主流web框架
          Django:大而全,自带了很多功能模块,

             类似于航空母舰 (缺点:有点笨重)
          Flask:短小精悍,自带的功能模块特别少,

             大部分都是依赖于第三方模块(小而轻)
          Tornado:异步非阻塞 主要用在处理高io 多路复用的情况

              可以写游戏后端
      具体区别:

    用abc代替

    a:socket
    b:路由与视图函数
    c:模板渲染

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

    Django简介

      ☼ 版本问题

      

      ☼ django下载
        推荐下载1.11.11版本
        命令行直接下载
        pip3 install django==1.11.11
        pycharm下载

        验证是否下载成功
        django-admin

      ☼ 确保django能够正常启动需要注意

        注意事项(*****************************):
        1.计算机的名称不能有中文
        2.一个pycharm窗口就是一个项目,不要多个项目放在一个窗口里面
        3.项目名不能起中文

        

      

      ☼ 创建django项目的方式
        方式1(命令行创建):
          创建django项目
            django-admin startproject 项目名
          创建app应用
            python3 manage.py startapp app01
          启动django项目
            python3 manage.py runserver
        ps:用命令行创建django默认不会自动创建templates文件夹
          需要你手动自己创建(注意该文件夹路径是否被添加配置文件中)

    TEMPLATES = [
             {
                'BACKEND': 'django.template.backends.django.DjangoTemplates',
                'DIRS': [os.path.join(BASE_DIR,'templates')],    # 如果这个没有配置千万不要忘了
                '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',
                   ],
                },
             },
          ]




        方式2(pycharm创建)
          FILE >>> new project

            选择第二个django 需要注意名字不能有中文,

            选择本地的解释器,勾选后台管理
          创建app
            pycharm命令行创建
            python3 manage.py startapp app01
            Tools下面run manage task功能栏(manage task 简便命令)

            启动点小绿色箭头

            edit conf。。。。可以修改端口号

          

          

           

          ps:pycharm能自动帮你创建一个app并自动注册到配置文件中(勾选上面图片中的Application name)

          

    强调:
    1.用django一定要保证只有一个在运行状态 切记切记!!!!!!!
    2.一定记得清浏览器的缓存


      ☼ app(应用)的概念
        如果把一个django项目比作一所大学,

        那么app就是大学里面的学院

    注意:新创建的app需要在配置文件中注册才能生效(*******************)

        
    INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'app01.apps.App01Config' # 可以用全称
    'app01' # 也可以简写
    ]
    注意在配置文件里面添加



      ☼ django各个文件的作用

        应用名
          migrations 数据库迁移记录相关数据
          admin.py django后台管理相关
          models.py 模型表相关
          views.py 视图函数相关
        项目名
          settings.py 配置文件
          urls.py 路由与视图函数的映射关系
          templates 项目用到的所有的html文件
          manage.py
          django入口文件



      ☼ django小白必会三板斧
        from django.shortcuts import render,HttpResponse,redirect

        HttpResponse  返回字符串
        render  返回一个html页面
          两种给前端页面传值的方式

           方式一:
             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())

        redirect  重定向(既可以重定向到别人的网址也可以定向到自己的)



    补充:
      django识别到你的代码变化之后会自动,但是有时候反应速度比较慢
      你可以手动重启,你也可以多刷新几次浏览器

  • 相关阅读:
    17.1.1.2 Setting the Replication Slave Configuration
    17.1.1 How to Set Up Replication
    ffmpeg结构体以及函数介绍(二) 分类: ffmpeg-SDL-VLC-Live555 2013-08-22 18:03 451人阅读 评论(0) 收藏
    ffmpeg结构体以及函数介绍(一) 分类: ffmpeg-SDL-VLC-Live555 2013-08-22 18:01 543人阅读 评论(0) 收藏
    ffmpeg入门之 Tutorial01 分类: ffmpeg-SDL-VLC-Live555 2013-08-22 17:54 495人阅读 评论(0) 收藏
    uclibc和glibc的差别 分类: arm-linux-Ubuntu 2013-08-21 17:42 499人阅读 评论(0) 收藏
    Cramfs、JFFS2、YAFFS2全面对比 分类: arm-linux-Ubuntu 2013-08-21 10:42 904人阅读 评论(0) 收藏
    Hi3531 SDK v2.0.8.0 安装 分类: HI3531 2013-08-21 10:25 2748人阅读 评论(1) 收藏
    arm-linux-gcc: Command not found 问题解析 . 分类: arm-linux-Ubuntu 2013-08-21 08:43 855人阅读 评论(0) 收藏
    Hi3531 SDK 安装以及升级使用说明 分类: HI3531 2013-08-20 17:26 2657人阅读 评论(0) 收藏
  • 原文地址:https://www.cnblogs.com/yangyinyin/p/10982189.html
Copyright © 2011-2022 走看看