zoukankan      html  css  js  c++  java
  • Django项目开始的基本配置

    首先我们先了解的知识 - 用户能够访问的所有资源,都是程序员提前暴露好的

    如果没有暴露,用户就永远访问不了

    django是可以自动重启的,但是有时候反应速度比较慢,也有可能在你代码没写完的时候重启了,会报错,但是不用管

    三板斧

    导入模块
    from django.shortcuts import render,HttpResponse,redirect

    render

    • 返回html页面

    HttpResponse

    • 返回html页面

    redirect

    • 重定向

    静态文件配置

    静态文件-第一步

    网站所要用到的

    • 自己写好的js
    • 自己写好的css
    • 第三方框架bootstrap,font-awesome,sweetalert

    通常情况下,网站所用到的静态文件,统一的都放在static文件夹下

    1. setting.py
    
    STATIC__URL = '/static/'        # 是访问静态资源的接口前缀
    """
    只要你想访问静态资源,你就必须以static的接口前缀
    """
    # 手动配置静态文件访问资源
    STATICFILES_DIRS = [
        os.path.join(BASC_DIR,'static')
    ]
    
    1. 写在html中导入js,css的动态解析语句
    静态文件, 动态加载
    
    {% load static %}   -- 翻译: 装入静态文件
    <link rel="stylesheet" href="{% static 'bootstrap/css/bootstrap.min.css' %}"
    <script scr="{% static 'bootstrap/js/bootstrap.min.js' %}"></script>
    

    form表单-第二步

    action:

    • 不写 默认朝当前地址提交
    • 只写后缀/index/
    • 写全路径

    method:

    • 表单默认的提交方式是get请求
    • get请求方式携带的参数是在url后面
      • 缺点:1. 不安全 2. get请求携带的参数有大小限制
    • post请求是相对安全的的

    学习前期使用post请求如果要提交post请求,有两种方法:

    • 直接去settings.py文件中注释掉一个中间件

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

      ]

    • 在html文件中,

      标签下面添加模块语法 {% csrf_token %}

    服务端request对象及方法处理浏览器提交的数据-第三步

    • 获取post请求携带的数据 - request.POST.get- (默认只取最后一个元素)

    • 获取post请求携带的参数列表 - request.POST.getlist- (返回的是一个列表套对象)

    • 获取get请求携带的参数 - request.GET.get - (默认只取最后一个元素)

    • 获取get请求携带的参数列表 - request.GET.getlist - (返回的是一个列表套对象)

    get和post在后端获取用户数据的时候,规律是一样的

    django连接数据库 - 第四步

    • 第一步: 配置文件中配置

      1. settings.py
      DATABASES = {
          'default':{
              'ENGINE': 'django.db.backends.mysql', # 指定数据库为mysql
              'NAME': 'db_name', # 指定到底是哪一个数据库
              'USER': 'root',
              'PASSWORD':'123',
              'HOST':'128.0.0.1',
              'PORT':3306,
              'CHARSET':'utf8'   # 这里不可以写utf-8,会报错
          }
      }
      
    • 第二步:

      django默认使用的是mysqldb连接数据库,但是该模块不支持了,所以你要告诉django不要用musqldb,应该用pymysql
      
      你可以在项目名下面的__init__.py也可以在应用名下面的__init__.py文件下面指定
      import pymysql
      pymysql.install_as_MySQLdb()
      

    django orm简介

    orm对象关系映射

    类 - 数据库中的表

    对象 - 表的记录

    对象获取属性 - 记录的某个字段对应的值

    优点: 能够让一个不会操作数据库的人,也能简单快捷的去使用数据库

    缺点: 由于封装程度太高,可能会导致程序执行效率偏低,有时候,集合项目需求,可能也会需要手写sql语句

    注意事项:

    			1. django的orm不会自动帮我们创建库, 库需要我们自己手动创建
    			2. 表会自动的帮忙创建,只需要书写符合django orm语法的代码即可
    

    那么我们会去app所在的models.py文件夹下去书写符合django orm语法的代码

    models.py中的orm书写格式

    1. models.py
    
    from django.db import models
    
    class User(models.Model):
        # 设置id为主键 - AutoField:主键专用
        id = models.AutoField(primary_key=True) 
        # 设置username字段为64位的字符型
    	username = models.CharField(max_length=64)
    	# 设置phone为数值型
        phone = models.IntegerField()
    

    数据库迁移命令

    • 方式一:cmd命令
    python.manage.py makemigrations # 并不会创建表,只是把当前的操作记录下来(miggrations)
    python.manage.py migrate # 将orm语句真正迁移到数据库中,也就是创建表
    
    • 方式二:
      Tools -> Run manage.py Task... (快捷键:ctrl+alt+R)
      -> 在下方弹出来的控制台中输入 -> makemigrations -> migrate
    

    注意: 只要在models.py中修改了跟数据库相关的代码,就必须再执行上面的两条命令

  • 相关阅读:
    数据科学 R语言速成
    F#周报2019年第29期
    F#周报2019年第28期
    F#周报2019年第27期
    F#周报2019年第26期
    F#周报2019年第25期
    F#周报2019年第24期
    F#周报2019年第23期
    .NET工程师的书单
    F#周报2019年第22期
  • 原文地址:https://www.cnblogs.com/xiongchao0823/p/11715872.html
Copyright © 2011-2022 走看看