其他分享
首页 > 其他分享> > django版本配置问题,静态文件,orm,orm的使用

django版本配置问题,静态文件,orm,orm的使用

作者:互联网


django版本配置问题解决及其他django初始配置

  由于我们的django版本的配置问题在运行的时候可能会出现一些小问题,目前主要问题有这两种:

  1. 去settings配置文件中的INSTALLED_APPS看一下你的app有没有注册,如果没有就加上'app名'或者'app01.apps.App01Config'

  2. 去settings配置文件中的TEMPLATES看一下你的DIRS是不是[os.path.join(BASE_DIR,'templates')]如果是[BASE_DIR / 'templates']形式的话请改掉

  初始配置

  1.. 配置静态文件的时候关于地址我们也要设置配置接口,在settings中的STATIC_URL = '/static/'的下面加上STATICFILES_DIRS = [os.path.join(BASE_DIR, 'static')]这样一句话

  2. 在前期我们学习django的时候我们将settings中的MIDDLEWARE中的

'django.middleware.csrf.CsrfViewMiddleware'这一串代码注释掉,要不然会报403

  3. 配置文件中修改配置(django链接MySQL),去settings中找到DATABASES将原来的注释掉放上下面的代码,因为我们用的是MySQL,原来的是sqlites3

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',  # 指定数据库软件名称
        'NAME': 'day55',  # 指定库名
        'USER': 'root',
        'PASSWORD': '123',
        'HOST': '127.0.0.1',
        'PORT': 3306,
        'CHARSET': 'utf8'
    }
}

静态文件及相关配置

静态文件

  1. 什么是静态文件

    所谓静态文件就是html页面上不经常变动的资源

      第三方框架文件     css文件     JS文件     图片文件

  2. 针对这些静态文件我们都会将他们放在同一的文件夹static中,那么如果在static文件夹中又需要分类的话我们依旧可以继续分类    一切都是为了简洁,美观,高效

  - static文件夹

    -- others文件夹

      --- 第三方框架文件

    -- css文件夹

      --- 所有的css文件

    -- js文件夹

      --- 所有的js文件

    -- img文件夹

      --- 所有的img文件

  3. 但是在建立了文件夹之后会出现一个问题我们在访问login的时候发现我们不是导了样式嘛,但是没有显示出来

我们f12查看network发现样式已经进来了,就是不显示,奶奶滴

我们再看他们的显示是404(地址不存在)

  4. 这个时候我们来看这句话:

  我们在访问django框架资源的使用之所以可以拿到数据是因为提前在urls.py中开设了相应的资源接口,如果访问不到资源那么就是没有开设相应的接口

  因为我们这个时候访问的link,src地址是不存在的。
  所以我们在设置css,js样式的时候也要像上面那样设定接口

  5. 之后我们在settings中 STATIC_URL = '/static/' 的下面写上这样的配置

# 静态文件资源配置
STATICFILES_DIRS = [
    os.path.join(BASE_DIR, 'static')
]

这样之后我们再去访问login网页就没有问题了,同时在前面设置的css,js  ..路径也可以去掉

static

我们来看刚才的配置

 STATIC_URL = '/static/'
    # 静态文件资源配置
    STATICFILES_DIRS = [
        os.path.join(BASE_DIR, 'static')
    ]

动态解析staic配置

我们给static配置上动态,以防以后settings文件中STATIC_URL中的static被修改

{% load static %}
   <link rel="stylesheet" href="{% static 'bootstrap-3.4.1-dist/css/bootstrap.min.css' %}">

我们给css配置上这个方法,无论以后static怎么变动都会传到之前的地方


请求方法(GET POST)

  1. URL:统一资源定位符

  2. GET请求和POST请求

GET请求 POST请求 

1. 向别人索要数据

2. 也可以携带额外的数据

     url?xxx=yyy&zzz=ooo&aaa=bbb
     上述携带数据的方式有两个限制
      1.数据只能是一些无关紧要的非敏感数据
      2.数据大小有限制 2KB~4KB左右
      GET请求没有请求体(HTTP数据格式)

1. 向别人提交数据

2. 也可以携带额外的数据

     数据都是放在请求体中

      并且数据大小没有限制

  3. form表单默认的数据提交数据是get 我们可以通过method = 'post'   修改

form表单的action属性

action  控制数据的提交地址
        方式1: 不写 朝当前页面所在的地址提交
        方式2: 写后缀 /index/  自动补全ip和port
        方式3: 写全称 https://www.baidu.com/

  4.提交post请求前期需要去配置文件中注释一行代码

MIDDLEWARE = [
    # 'django.middleware.csrf.CsrfViewMiddleware',
]

request对象方法

疯狂点点点

request.method

获取请求方式

结果是纯大写的字符串

request.POST 获取POST亲求发送来的普通数据(不包含文件)
        request.POST.get() 默认只获取列表中最后一个数据值
        request.POST.getlist() 获取对应的整个列表,无论有几个数据值
request.GET 获取url后面携带的非敏感的数据
         request.GET.get() 默认只获取列表中最后一个数据值
         request.GETgetlist() 获取键对应的整个列表,无论有几个数据值

pycharm链接MySQL数据库

首先你要先下载pycharm中的mysql

  1.查找pycharm提供的database按钮,左下角或右侧边栏或下载插件或卸载重装

  2.首次链接数据库需要下载对应的驱动   点击黄色的Download

  3.简单的增删改查

  4.有时间的情况下自行研究更多操作


django链接MySQL

  1. django默认使用的是sqlite3 但是这款数据库一般只用于本地测试 功能较少

  2. 配置文件中修改配置(在settings中找到DATABASES),将原来的注释掉放上下面的代码,因为我们用的是MySQL,原来的是sqlites3    记住键要大写

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',  # 指定数据库软件名称
        'NAME': 'day55',  # 指定库名
        'USER': 'root',
        'PASSWORD': '123',
        'HOST': '127.0.0.1',
        'PORT': 3306,
        'CHARSET': 'utf8'
    }
}

  3. 指定链接MySQL的模块

django1.11 版本需要在项目或者应用目录下的__init__.py中编写一行代码
        import pymysql
       pymysql.install_as_MySQLdb()

django2.2 以上版本需要使用mysqlclient模块

  在pycharm的Terminal中输入pip3.8 install mysqlclient这串命令下载完成即可


django  orm

  1. ORM:对象关系映射

  2. 什么是对象关系映射?

是一种程序设计技术,用于实现面向对象编程语言里不同类型系统的数据之间的转换。

从效果上说,它其实是创建了一个可在编程语言里使用的“虚拟对象数据库

  3. orm作用

映射成
对象 映射成 记录
对象点属性 映射成 字段对应的值

  4. ORM的存在可以让不会MySQL的python程序员 使用python的语法简单快捷的操作MySQL

  5. 操作步骤

1.先去应用目录下的models.py编写模型类
	class User(models.Model):  # 类似于定义了表名
        # id int primary key auto_increment
        id = models.AutoField(primary_key=True)  # 类似于定义了主键
        # name varchar(32)
        name = models.CharField(max_length=32)  # 类似于定义了普通字段
        # pwd int
        pwd = models.IntegerField()  # 类似于定义了普通字段
2.数据库迁移/同步命令
	1.将models中有关数据库的操作记录下来(migrations文件夹)
		python38 manage.py makemigrations
 	2.将操作真正影响到数据库中
    	python38 manage.py migrate
	'''当修改了models中与数据库相关的代码 都必须执行上述的命令'''
	ps:可以简写 也可以指定应用单独迁移/同步
    
3.表的主键在orm中 可以不写 orm会自动帮你添加一个id的主键
	如果你需要主键的名称不叫id 只能自己创建

orm语法

  增删改查

  1. 查

  models.User.objects.filter()

  结果可以看成是一个列表套数据对象
  如何获取对象 可以使用first()方法 如果没有值会返回None 我们if判断即可

  2. 增

  models.User.objects.create()

  3. 改

     models.User.objects.filter(id=1).updata(name='jasonNB')

  4. 删

  models.User.objects.filter(id=4).delete()


orm外键关联

 

 

标签:文件,静态,django,models,orm,static,MySQL
来源: https://www.cnblogs.com/scx-xiaochun/p/16643650.html