Python学习之Django入门基础

知识补充

1. HTTP协议消息的格式:


        1. 请求(request)
            请求方法 路径 HTTP/1.1\r\n
            k1:v1\r\n
            ...\r\n
            \r\n
            请求体        <-- 可以有,可以没有
        
        2. 响应(response)
            HTTP/1.1 状态码 状态描述符\r\n
            k1:v1\r\n
            Content-Type: text/html; charset=utf8\r\n
            \r\n
            响应正文       <-- HTML内容

  2. Python web框架的本质:


        a. 收发socket消息    --> 按照HTTP协议消息格式去解析消息
        
        b. 路径和要执行的函数的对应关系   --> 主要的业务逻辑
        
        c. 字符串替换                     --> 模板(特殊符号 --> 数据)
        

  3. 一个完整得请求流程:


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

参考学习:http://www.cnblogs.com/liwenzhou/p/8258992.html

Django入门基础

0. Django安装

        pip3 install django            #默认安装最新的django
        pip3 install django==1.11.11#安装指定版本的Django
        pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple/ django==1.11.11
        PyCharm安装的时候:

       
            注意不要勾选那个选项 (你们懂得)

 1. Django项目的启动:


        1. 命令行启动
            在项目的根目录下(也就是有manage.py的那个目录),运行:
            python3 manage.py runserver IP:端口--> 在指定的IP和端口启动
            python3 manage.py runserver 端口   --> 在指定的端口启动
            python3 manage.py runserver        --> 默认在本机的8000端口启动
        
        2. PyCharm启动
            点绿色的小三角,直接可以启动Django项目(前提是小三角左边是你的Django项目名)

2.创建Django项目

      1. 创建方式
                1. 命令行创建方式
                    1. cd到你要保存Django项目的目录
                    2. Django-admin startproject 项目名   --> 会在当前目录创建Django项目
                2. PyCharm创建方式
                    1. File --> new project --> ...
                    2. 创建完之后一定要选在新窗口打开!!!


        
3. 配置相关   项目名/settings.py文件


        1. Templates(存放HTML文件的配置) ,注意其文件夹的位置      <-- 告诉Django去哪儿找我的HTML文件
        
        2. 静态文件(css/js/图片)存放:新建一个static文件夹
            # 静态文件保存目录的别名
            STATIC_URL = '/static/'

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

4. Django WEB请求流程(简版)    


            1. 启动Django项目,等待用户连接
            2. 浏览器在地址栏输入URL,来连接我的Django项目
            3. 在urls.py中 找 路径和函数的 对应关系
            4. 执行对应的函数
            5. 返回响应

5. views.py


            1. 专门用来定义处理请求的函数
                1. 基本必备三件套
                    from django.shortcuts import HttpResponse, render, redirect
                    1. HttpResponse("要返回的内容")            --> 通常用于直接返回数据
                    2. render(request, "html文件", {"k1": v1}) --> 返回一个HTML文件或者打开文件进行字符串替换
                    3. redirect("URL")                         --> 告诉用户的浏览器去访问其他的URL
            
                2. request相关
                    1. request.method     --> 查看请求的方法
                    2. request.POST       --> 获取POST请求的数据

6. ORM使用


            1. 什么是ORM? 
                是一种编程的方法论(模型), 和语言无关.(其他的语言也有类似的实现.)

                数据表  对应了类
                数据库表中的每一个字段对应每一个属性
                数据表中的一条记录对应一个实例化对象
                
            2. ORM的本质:
                类    --->    数据表
                对象  --->    数据行
                属性  --->    字段
                
                按照规定的语法写,自动翻译成对应的SQL语句.
                
            3. ORM的功能:    
                ORM操作数据表
                ORM操作数据行
                不能创建数据库,自己动手创建数据库


            4. Django里ORM的使用:
                1. 手动创建数据库
                2. 在settings.py里面,配置数据库的连接信息
                   # 数据库相关的配置
                   DATABASES = {
                         'default': {
                        'ENGINE': 'django.db.backends.mysql',  # 连接的数据库类型
                        'HOST': '127.0.0.1',  # 连接数据库的地址
                        'PORT': 3306,  # 端口
                        'NAME': "day61",  # 数据库名称
                       'USER': 'root',  # 用户
                       'PASSWORD': '123456'  # 密码
                       }
                   }
                3. 在项目/__init__.py告诉Django用pymysql模块代替MySQLdb来连接MySQL                       数据库
                    import pymysql
                    pymysql.install_as_MySQLdb()
                4. 在app/models.py里面定义类
                    # 出版社
                    class Publisher(models.Model):
                        id = models.AutoField(primary_key=True)  # 自增的ID主键
                        # 创建一个varchar(64)的唯一的不为空的字段
                        name = models.CharField(max_length=64, null=False, unique=True)
                5.在terminal窗口 执行两个命令
                    1. python3 manage.py makemigrations   --> 把models.py里面的更改记录到                         小本本上
                    2. python3 manage.py migrate  --> 把更改翻译成SQL语句,去数据库执行

猜你喜欢

转载自blog.csdn.net/weixin_39036700/article/details/81126053