django版本配置问题,静态文件,orm,orm的使用
作者:互联网
-
django版本配置问题解决及其他django初始配置
-
静态文件及相关配置
-
静态文件
-
static
-
动态解析static配置
-
-
请求方法(GET POST)
-
request对象方法
-
pycharm链接MySQL数据库
-
django链接MySQL
-
django orm
-
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. 也可以携带额外的数据 数据都是放在请求体中 并且数据大小没有限制 |
3. form表单默认的数据提交数据是get 我们可以通过method = 'post' 修改
form表单的action属性 action 控制数据的提交地址 |
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