zoukankan      html  css  js  c++  java
  • 37.django基础概念

    django

    WEB应用的本质

    socket网络编程,基于C/S架构,使用的是TCP/UDP协议进行数据传输,属于OSI七层中的传输层。

    web应用是基于B/S架构,在服务端与网页之间交互时还需要通过使用HTTP(超文本传输协议),HTTP协议是属于OSI七层中的应用层。

    Http协议包括:请求头,请求体,响应头,响应体

    请求头和请求体是页面发送给服务端的数据,比如包括提交数据的方式,协议,ip端口,用户代理以及数据内容。

    响应头是服务端发送给页面所需要添加规定的头部数据,响应体则是发送给页面用户可以直接看到的内容。

    自定义WEB框架

    我们可以自定义WEB框架,通过在页面提交不同的请求给服务端,每个请求可以对应一个url,服务端接收并识别不同的url,然后响应发送给页面对应不同的数据。

    1. 首先通过socket服务端进行数据传输。
    2. 然后服务端接收到客户端发送的不同的url,将url通过映射到对应的函数进行执行,这个映射过程称为路由系统(它在flask,django框架中都有应用),作用就是可以通过不同url拿到对应函数执行的返回值响应发送给客户端页面。
    3. 在执行函数过程中,可以通过html等模板引擎进行渲染,比如将服务端处理好的数据放入html模板中返回给页面,解析后便可得到动态的页面结果。
      • 可以通过自己定义规则
      • 使用第三方工具jinja2

    django安装启动

    django的安装,pip3 install django或用pycharm安装

    django的创建,django-admin startproject xxx或pycharm创建

    django目录结构,主要包括4个py文件:

    • manage.py: 管理文件
    • 项目同名的文件夹
      • settings.py: 配置文件
      • urls.py: 路由映射关系
      • wsgi.py : socket服务端文件

    django路由系统

    from django.shortcuts import HttpResponse
    urlpatterns = [
    				url(r'^admin/', admin.site.urls),
    				url(r'^index/', index),
    			]
    
    def index(request):
        return HttpResponse('index')
    

    django模板介绍

    # 首先通过在templates文件夹下新键f1.html页面模板,然后在urls.py文件中进行渲染,可以对变量,列表,字典等渲染,使用到django中的render方法
    # 变量的渲染
    # <h2>{{ name }}</h2>
    from django.shortcuts import render
    
    def f1(request): 
    	name = 'kk'			
    	return render(request, 'f1.html', {"name":name})
    
    # 列表的渲染
    '''
    把列表元素一个一个取出来
    <ul>
        <li>{{ li.0 }}</li>
        <li>{{ li.1 }}</li>
        <li>{{ li.2 }}</li>
    </ul>
    列表的循环遍历
    <ul>
        {% for items in li %}
            <li>{{ items }}</li>
        {% endfor %}
    </ul>
    '''
    
    # 字典的渲染
    '''
    <h3>{{ dict.age }}</h3>
    
    <ul>
        {% for items in dict.values %}
            <li>{{ items }}</li>
        {% endfor %}
    </ul>
    '''
    
    # 列表套字典(比如从数据库中提取的数据)
    '''
    可以通过表格的方式来实现
    表头对应字段名
    单元格内容可以循环列表和字典取出
    '''
    

    创建django项目的时候, 需要做的几个操作:

    到settings.py中, 配置:

    #1
    STATIC_URL = '/static/'
    STATICFILES_DIRS = (os.path.join(BASE_DIR, 'static'),)
    # 逗号不能少
    # static目录需要创建
    
    #2
    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',
    ]
    
    #3
    'DIRS': [os.path.join(BASE_DIR, 'templates')]
    
  • 相关阅读:
    Socket和数据库的一些使用---郭雪彬
    懒加载--初步理解. by:王朋
    自定义带图片和文字的Button的排版--陈棚
    一些开源库分享 ---严焕培
    实现“手机qq”侧滑菜单 -- 吴欧
    iOS 小技巧总结
    Responder一点也不神秘————iOS用户响应者链完全剖析 周傅琦君
    通过版本号来判断用户是否是第一次登陆----By张秀清
    常用第三方推荐
    static, const 和 static const 变量的初始化问题
  • 原文地址:https://www.cnblogs.com/yellowcloud/p/11315999.html
Copyright © 2011-2022 走看看