• django配置


    一个完整的请求流程:

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

    本次使用django版本是1.11 lts长期版本

    安装

    pip install django==1.11

    创建项目

    django-admin startproject mysite

    项目的启动

    python manage.py runserver ip:端口  --> 指定ip和端口启动
    python manage.py runserver 端口     -->  指定端口启动
    python manage.py runserver         -->  默认在本机的8000端口执行

    配置相关:

    1.Templates(存放HTML文件的配置)

    • 在项目下新建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.静态文件(css/js/图片)

    • 在项目下创建static目录
    STATIC_URL = '/static/'
    
    STATICFILES_DIRS = [
        os.path.join(BASE_DIR, 'static')
    ]

    3注释掉setting.py中带有csrf的那一行(大概45~47行)

    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',
    ]

    创建app

    • 方便我们在一个大的django项目中,管理实现不同的业务功能
    python manage.py startapp myapp
    •  创建玩app还要告诉django
    INSTALLED_APPS = [
        'django.contrib.admin',
        'django.contrib.auth',
        'django.contrib.contenttypes',
        'django.contrib.sessions',
        'django.contrib.messages',
        'django.contrib.staticfiles',
        'myapp.apps.MyappConfig'
    ]

    ORM

    • 不同的程序员写的sql水平参差不齐
    • 执行效率也参差不齐

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

    类似于:

    jquery            DOM

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

    ORM的对应关系:

    类       --->    数据表
    对象     --->    数据行
    属性     --->    字段

     优点

    • 简单,不用自己写sql语句
    • 开发效率高

    缺点

    • 记忆特殊语法
    • 相对于老司机写的sql,执行效率有缺点

    能做的事情:

    1. 操作数据表 ---> 创建表,删除表,修改表(操作models.py中的字段)

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

    不能做的事情: 不能创建数据库,(自己动手创建数据库)

    django的ORM详细操作

    Mac 推荐使用homebrew安装mysql

    brew install mysql

    启动停止和重启数据库服务

    Brew services start mysql
    Brew services stop mysql
    Brew services restart mysql

    1自己动手创建数据库

    create database django111

    2在django项目中设置连接数据库的相关配置(告诉django链接哪一个数据库)/settings

    DATABASES = {
        'default': {
            # 连接的数据库类型
            'ENGINE': 'django.db.backends.mysql',
            # 数据库的地址
            'HOST': '127.0.0.1',
            # 端口
            'PORT': '3306',
            # 数据库名称
            'NAME': 'django111',
            # 用户
            'USER': 'root',
            # 密码
            'PASSWORD': 'sunlizhao'
        }
    }

    3告诉django用pymysql代替默认的mysqldb来链接mysql

    • 在项目的__init__.py文件中,写入如下:
    import pymysql
    
    pymysql.install_as_MySQLdb()

    4,在app下面的models.py文件中定义一个类,这个类必须继承models.Model

    class UserInfo(models.Model):
        # 创建一个自增的主键字段
        id = models.AutoField(primary_key=True)
        # 创建一个varchar(20)的不为空的字段
        name = models.CharField(null=False, max_length=20)

    5执行两个命令

    #将改动记录下来
    python manage.py makemigrations
    
    #去数据库中执行
    python manage.py migrate
  • 相关阅读:
    七、python抽象
    六、python条件、循环及其它语句
    泛型数组
    判断数组是否包含此元素
    数组倒序
    Class字节码文件获取的三种方法
    操作系统的产生
    Java重载的概述
    表设计遵循的三大范式实例
    pyqt5窗体分隔
  • 原文地址:https://www.cnblogs.com/sunlizhao/p/9240577.html
Copyright © 2020-2023  润新知