• web框架django 第一天课上总结


    ###OSI七层模型
    - 应用层
    - 表示层                应用层
    - 会话层
    - 传输层                
    - 网络层
    - 数据链路层   
    - 物理层 
    
    - socket  套接字  位于应用层和传输层之间虚拟层,一组接口
    
    - c/s   b/s 
    
    - 百度服务器 socket服务端
        - 1.绑定ip和端口
        - 2.等待连接
        - 5.接受数据
        - 6.返回数据
        - 9.断开连接    
    
    - 浏览器 socket客户端
        - 3.连接服务端
        - 4.发送数据
        - 7.接受数据
        - 8.浏览器渲染数据
        - 9.断开连接    
        
    
    ###HTTP 
    - 1.请求和响应
        - 请求(request)   浏览器给服务器发的消息 
        - 格式:
            - '请求方法 URL路径 协议版本
            - k1: v1
            - k2: v2
                
            - 请求数据'
            - GET 没有请求数据
    
        - 响应(response)  服务器给浏览器回的消息
        - 格式:
            - 'HTTP/1.1 状态码 状态描述
            - k1: v1
            - k2: v2
            
            - 响应数据(HTML文本)'
    
    - 2.请求方法 8种
        - GET   获取一个页面
        - POST  提交数据
        
    - 3.状态码
        - 1xx 
        - 2xx   200 201 
        - 3xx  重定向
        - 4xx  请求的错误  404 403 
        - 5xx  服务器的错误 
            
    
    ###web框架的功能
    - 1.socket收发消息
    - 2.根据不同的路径返回不同结果
    - 3.返回动态页面 (字符串的替换)  模板的渲染
        
    - Django  flask  tornado 
    
    ### 1.下载安装
    - 1.命令行:
        - pip install django==1.11.22 -i https://pypi.tuna.tsinghua.edu.cn/simple/
        - pip install django 不指定版本号,默认安装最新版
    
    - 2.pycharm         
        
            
    ### 2.创建项目
    - 1.命令行
        - 切换一个存放项目的目录下
        - django-admin startproject 项目名称
        
    - 2.pycharm
        - file _> new project _> 左侧选Django ——》 输入项目的路径 ——》 选择解释器 ——》 创建
        
            
    ###3.启动
    - 1. 命令行
        - 切换到项目的根目录下  manage.py
        - python manage.py runserver  # 默认127.0.0.1:8000 
        - python manage.py runserver 80 # 指定端口号127.0.0.1:80
        - python manage.py runserver 0.0.0.0:80 #共享并指定端口号 0.0.0.0:80
        
    - 2. pycharm 
            
        
    ###4.配置
        - BASE_DIR  项目的根目录
        - TEMPALTES  模板的配置  DIRS = []
        - DATABASES  数据库
        - STATIC_URL ='/static/'  静态文件的别名
        
        - STATICFILES_DIRS = [    # 以后静态文件找不到 首先看这个配置
            os.path.join(BASE_DIR,'static')
        ]
    
        
    ###5.APP
        - 创建
            - 命令行:python manage.py startapp app名称
            
        - 注册:
            INSTALLED_APPS = [
                    'django.contrib.admin',
                    ...
                    'app01',
                    'app01.apps.App01Config'  # 推荐的方式
                ]
    
        
    ###6.提交POST请求
        目前情况 注释 MIDDLEWARE 
         'django.middleware.csrf.CsrfViewMiddleware'
         
        
    ###7.urls.py 
         - url路径和函数的对应关系
             urlpatterns = [
                    url(r'^admin/', admin.site.urls),
                    url(r'^login/', views.login),
                ]
    
    
    ###8.写函数  
        - app下的views.py中
        
        - def xxx(request):
            - request  —— 请求相关的内容
            - request.method  —— 请求方式  GET POST 
            - request.POST    —— form 表提交POST请求的数据   {}   
            
            - return 响应
            
        - 响应:
            - from django.shortcuts import render, HttpResponse, redirect
            - HttpResponse   —— 》  返回的字符串  
            - render(request,'模板的文件名',{})      ——》 返回是一个页面
            - redirect('重定向的地址')    ——》 重定向 
         
        - 模板  templates     
    
         
    ###9.orm对象关系映射(object relational mapping)
    - django 使用mysql数据库的配置:
        - 1.创建一个mysql数据库
        - 2.在settings中配置数据库:
        - 3.使用pymysql模块连接mysql数据库
            在与settings同级目录下的__init__.py中:
            import pymysql
            pymysql.install_as_MySQLdb()    
        - 4.创建表,在app下的models.py中写类:
        ```python
        from django.db import models
    
    
        # Create your models here.
        class UserInfo(models.Model):
            username = models.CharField(max_length=32)  # varchar(32)
            password = models.CharField(max_length=32)
    
         ```
        
        - 5.执行数据库迁移的命令
            - python manage.py makemigrations  # 创建迁移文件  记录上models.py的变更记录 
            - python manage.py migrate          # 执行迁移数据库  
            
        
    ###10. orm具体操作:
    ```python
        ret = models.Publisher.objects.all()  # 查询所有的数据   对象列表
        for i in ret:
            print(i,type(i))   #  对象   对应数据库一条数据
            print(i.name,i.id) # 属性    字段的值
    
        models.Publisher.objects.filter(name=publisher_name)   查不到就是空列表
    
        models.Publisher.objects.create(name=publisher_name)   新增
    
        models.Publisher.objects.filter(id=id).delete()    删除
    
    
        修改
        publisher_name = request.POST.get('publisher_name')
        # 编辑
        pub_obj.name = publisher_name  # 只在内存中有变化
        pub_obj.save()  # 保存修改到数据库
    ```
        
        
    ###11.模板
    ```html
    {% for pub in ret %}
          <tr>
            <td>{{ pub.id }}</td>
            <td>{{ pub.name }}</td>
          </tr>
    {% endfor %}
    ```
    
    
    
         
        
  • 相关阅读:
    数字货币资金费策略
    如何利用CCXT交易数字货币合约
    三分钟玩转微软AI量化投资开源库QLib
    商品期货月度效应的统计
    数字货币无风险收益率又双叒叕扩大了!
    Omega System Trading and Development Club内部分享策略Easylanguage源码 (第二期)
    【mac】安装配置 homebrew, Nginx
    【Typescript+Vue】01. easy
    【python】sudo python -m SimpleHTTPServer
    【windows】docker to vmware
  • 原文地址:https://www.cnblogs.com/lilyxiaoyy/p/11258412.html
Copyright © 2020-2023  润新知