• Django基础02


    一个完整得请求流程:

      0. 启动服务端,等待客户端(用户的浏览器)来连接
      1. 在浏览器地址栏输入URL,与服务端建立连接,浏览器发送请求
      2. 服务端收到请求消息,解析请求消息,根据路径和函数的对应关系,找到将要执行的函数
      3. 执行函数,打开HTML文件,进行字符串替换,得到一个最终要返回的HTML内容
      4. 按照HTTP协议的消息格式要求,把HTML内容回复给用户浏览器(发送响应)
      5. 浏览器收到响应的消息之后,按照HTML的规则渲染页面.
      6. 关闭连接

    Django安装:

      pip3 install django==1.11.11
    
      pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple/ django==1.11.11
    
    1. Django项目的启动:

      1. 命令行启动
        在项目的根目录下(也就是有manage.py的那个目录),运行:

          python3 manage.py runserver IP:端口 #--> 在指定的IP和端口启动
          python3 manage.py runserver 端口 #--> 在指定的端口启动
          python3 manage.py runserver #--> 默认在本机的8000端口启动
    

      2. PyCharm启动
        点绿色的小三角,直接可以启动Django项目(前提是小三角左边是你的Django项目名)

    1. 配置相关 项目名/settings.py文件
        1. Templates(存放HTML文件的配置) <-- 告诉Django去哪儿找我的HTML文件

      2. 静态文件(css/js/图片)
        # 静态文件保存目录的别名
        STATIC_URL = '/static/'

        # 所有静态文件(css/js/图片)都放在我下面你配置的文件夹中
        STATICFILES_DIRS = [
          os.path.join(BASE_DIR, "static"),
        ]
    3. 注释掉setting.py中 带有 csrf 的那一行(大概45~47行)

    form表单往后端提交数据需要注意

      1. form不是from,所有获取用户输入的标签都应该放在form里面, 并且必须要有name属性
      2. action属性控制往哪儿提交,method一般都设置成post
      3. 提交按钮必须是type=submit,不能是别的类型

    1. GET请求和POST请求
        GET请求:
        1. 浏览器请求一个页面
        2. 搜索引擎检索关键字的时候
    http://www.baidu.com/s?wf=素还真
    

    POST请求:
      1. 浏览器向服务端提交数据,比如登录/注册等
      django 获取POST表单值

      email = request.POST.get('email',None)
      pwd = request.POST.get('pwd',None)
    
    1. Django中的APP:
        什么是APP?以及为什么要用APP?

      project --> 项目 (清华学校)

      APP --> 应用 (经济与管理学院/美术学院)

    方便我们在一个大的Django项目中,管理实现不同的业务功能.

      1. 创建APP的命令
      1. 命令行,在Django项目的根目录输入:

      python3 manage.py startapp app名字
    
    1. ORM
    import pymysql
    pymysql.connect(
    ...
    ...
    )
    
    1. 不同的程序员写的SQL水平参差不齐
    2. 执行效率也参差不齐

    python语法 --自动翻译--> SQL语句

    jQuery DOM
    $("#d1") --自动翻译--> document.getElementById("d1")
    

    ORM:
    优点:

    1. 简单,不用自己写SQL语句
    2. 开发效率高
      缺点:
    3. 记忆你这个特殊的语法
    4. 相对于大神些的SQL语句,肯定执行效率有差距

    ORM的对应关系:
    类 ---> 数据表
    对象 ---> 数据行
    属性 ---> 字段

    ORM能做的事儿:

    1. 操作数据表 --> 创建表/删除表/修改表
      操作models.py里面的类

    2. 操作数据行 --> 数据的增删改查

    不能创建数据库,自己动手创建数据库

    使用Django的ORM详细步骤:

    1. 自己动手创建数据库
      create database 数据库名;
    2. 在Django项目中设置连接数据库的相关配置(告诉Django连接哪一个数据库)

    数据库相关的配置

    DATABASES = {
    'default': {
    'ENGINE': 'django.db.backends.mysql', # 连接的数据库类型
    'HOST': '127.0.0.1', # 连接数据库的地址
    'PORT': 3306, # 端口
    'NAME': "day61", # 数据库名称
    'USER': 'root', # 用户
    'PASSWORD': '123456' # 密码
    }
    }
    
    1. 告诉Django用pymysql代替默认的MySQLDB 连接MySQL数据库
      在项目/init.py文件中,写下面两句:
    import pymysql
    # 告诉Django用pymysql来代替默认的MySQLdb
    pymysql.install_as_MySQLdb()
    
    1. 在app下面的models.py文件中定义一个类,这个类必须继承models.Model
    class 类名(models.Model):
    ...
    
    1. 执行两个命令
    python3 manage.py makemigrations
    python3 manage.py migrate
    

    ORM单表的增加和查询:

    1. 查询
    models.UserInfo.objects.all()
    
    1. 增加
    models.UserInfo.objects.create(name="张三")
    
  • 相关阅读:
    FZU 2272 Frog 第八届福建省赛 (鸡兔同笼水题)
    HDU 1166 敌兵布阵(线段树点更新区间求和裸题)
    poj 2251 Dungeon Master (BFS 三维)
    16 多校 8 Ball (贪心排序)很巧妙的思路啊~
    16 多校8 Rikka with Parenthesis II
    紫书动规 例题9-7 UVA
    紫书动规 例题9-6 UVA
    紫书动规 例题9-5 UVA
    紫书动规 例题9-4 UVA
    紫书动规 例题9-3 UVA
  • 原文地址:https://www.cnblogs.com/anyux/p/11921995.html
Copyright © 2020-2023  润新知