今日内容回顾(django入门之文件配置)

态文件配置

访问django框架资源的时候之所以可以拿到数据是应为提前在urls.py中开设了相应的资源接口,

如果访问不到资源那么就是没有开设相应的接口。

html页面上使用的不经常改变的资源,如css文件、js文件

针对静态文件资源一般都会放在static文件夹内,当static目录下出现了很多不同类型的静态文件资源,还可以分类管理。

如	others文件夹		存放第三方框架文件
	 css文件夹			 存放所有的css文件
	 js文件夹			 存放所有的JS文件
	 img文件夹			  存放所有的img文件

针对静态文件资源的访问,再提前开设相应的接口。

 STATIC_URL = '/static/'
    # 静态文件资源配置,配置在配置文件settings.py内
    STATICFILES_DIRS = [
        os.path.join(BASE_DIR, 'static')
    ]
    
    # 接口前缀
    STATIC_URL = "/static/"
    
    # 动态解析,
    {% load static %}
   <link rel="stylesheet" href="{% static 'bootstrap-3.4.1-dist/css/bootstrap.min.css' %}">

请求方法

URL:统一资源定位符(网址)

  • GET请求

    朝别人索要数据,也可以携带额外的数据,通过URL后面加上?后面填入需要携带的数据。

    上述携带数据方式有限制,只能是一些不重要的非敏感数据,数据大小在2KB~4KB左右

    GET请求没有请求体(HTTP数据格式)

  • POST请求

    朝别人提交数据,也可以携带数据,数据都是放在请求体内,并且数据大小没有限制。

  • form表单默认的数据提交方式是GET请求

    method = "post" 控制提交方式,不写默认get请求

    action="" 控制数据的提交地址

    action不写 默认朝当前页面所在的地址提交

    写后缀自动补全ip和port。

  • 提交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.GET.getlist 获取键对应的整个列表,无论有几个数据值

pycharm链接MySQL

  1. 查找pycharm提供的database按钮

    在左下角或由侧边栏或者下载插件或卸载重装pycharm

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

  3. 输入自己的用户名,密码尝试链接即可

django链接MySQL

django默认使用的是sqlite3小型的数据库,这款数据库一般只用于本地测试功能较少。

修改指定数据库需要在配置文件中修改配置

# 在settings.py的配置文件中找到默认配置 如下
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
    }
}
# 配置文件中修改配置
	DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',  # 指定数据库软件名称
        'NAME': 'day55',  # 指定库名
        'USER': 'root',
        'PASSWORD': '123',
        'HOST': '127.0.0.1',
        'PORT': 3306,
        'CHARSET': 'utf8'
    }
"""
指定链接MySQL的模块
	django1.11 版本需要在项目或者应用目录下的__init__.py中编写一行代码
    	import pymysql
       pymysql.install_as_MySQLdb()
  	django2.2 以上版本需要使用mysqlclient模块

"""

django orm操作

"""
orm:对象关系的映射

类		 	>>>			表
对象			>>>			记录
对象点属性	   >>>>		字段对应的值

"""
# 基本使用,先去应用目录下的models.py编写模型类
class User(models.model):		# 在MySQL中类似于定义了表明
    # 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()  # 类似于定义了普通字段
# 数据库迁移/同步命令
1. 将models中有关数据库操作记录下来(migrations文件夹)(添加操作记录)
	在pyCharm中下方有个Terminal调出pyCharm中的快捷框框
	输入命令:python38 manage.py makemigrations
2. 将操作真正影响到数据库(迁移到数据库)
	命令行中输入:python38 manage.py migrate
"""当修改了models中与数据库相关的代码,都必须执行上述的命令
ps:可以简写	也可以指定应用单独迁移/同步
"""

3. 表的主键在orm中可以不写,orm会自动帮你添加一个id的主键
	主键名字固定叫id
    如果你需要主键的名字不加id,那么只能自己创建

orm语法

# 查询数据
modles.User.objects.filter()	# 查询所有在表中的数据
filter("条件")	# filte内部可以添加条件用于精准查询
如:
	modles.User.objects.filter(id=1)  # 只获取id = 1 的表中数据
    类似: SQL语句中的>>>: select * form User where id = 1;
        
 # 增加数据
	models.User.objects.create()
 # 修改数据
models.User.objects.filter(id=1).update(name='jasonZNB')
# 删除数据
models.User.objects.filter(id=4).dalete()

orm外键关联

MySQL

一对多:外键字段建在多的一方

多对多:外键字段建在第三张关系表中

一对一:外键字段建在查询频率较高的表中

ORM

# 一对多:外键字段建在多的一方
publish = models.Foreignkey(to="Publish",on_delete=models.CASCADE)
# 多对多:外键字段可以直接写在某张表中 orm会自动创建第三张表
aythors = models.ManyToManyField(to="Authors")

# 一对一:外键字段建在查询频率较高的表中
detail = models.OneToOneField(to="AuthorDetail",on_delete=models.CASCADE)

posted @ 2022-09-01 19:43  瓮小辉  阅读(33)  评论(0)    收藏  举报