首页 > 数据库 >静态文件、请求方法、request对象、连接数据库、ORM

静态文件、请求方法、request对象、连接数据库、ORM

时间:2022-08-31 23:35:17浏览次数:238  
标签:文件 models 数据库 request django ORM orm

目录

静态文件及相关配置

一、编写登录功能

步骤:
    1.创建django项目并创建一个app
    2.在urls.py添加一组对应关系
    3.在app的views.py中编写登录核心逻辑
    4.利用三板斧与前端交互

二、访问资源

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

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

三、静态文件

1.定义:

​ html页面上使用的不经常改变的资源

​ 例如:第三方框架文件、css文件、js文件、图片文件

2.位置:

​ 针对静态文件资源一般都会放在static文件夹内

3.static文件夹:

​ 当static目录下出现了很多不同类型的静态文件济源,那么还可以分类管理

others文件夹:第三方框架文件
css文件夹:所有的css文件
js文件夹:所有的js文件
img文件夹:所有的img文件

4.针对静态文件资源的访问也需要提前开设相应的接口

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

5.接口前缀

STATIC_URL = '/static/'  # 接口前缀

6.动态解析

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

请求方法

一、GET请求

'''url:统一资源定位符(网址)'''
朝别人索要数据
也可以携带额外数据
	url?xxx=yyy&zzz=ooo&aaa=bbb
上述鞋带数据的方式有两个限制
    1.数据只能是一些无关紧要的非敏感数据
    2.数据大小有限制 2kb~4kb左右
GET请求没有请求头(http数据格式)
    

二、POST请求

朝别人提交数据
也可以携带额外数据
数据都是放在请求体中,并且数据不限大小

三、form表单默认的提交方式是GET

method = 'post'
action 控制数据的当前提交地址
    方式一:不写  # 朝当前地址所在的地址提交
    方式二:写后缀/index/  # 自动补全ip和port
    方式三:写全称 http://www.baidu.com/

四、提交POST请求前期需要去配置文件中注释一行代码

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

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.简单的增删改查

image

二、django连接数据库

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

1.配置文件中修改配置

DATABASES = {
    # 'default': {
    #     'ENGINE': 'django.db.backends.sqlite3',
    #     'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
    # }
    'default': {
        'ENGINE': 'django.db.backends.mysql',  # 指定数据库名称
        'NAME':'userinfo',  # 库名
        'USER': 'root',  # 管理员名称
        'PASSWORD': '123',  # 密码
        'HOST': '127.0.0.1',
        'PORT': 3306,
        'CHARSET': 'utf8'
    }
}

2.指定链接mysql的模块

django1.11 版本需要在项目或者用于目录下的__init__.py中编写一段代码
	import pymysql
     pymysql.install_as_MySQLdb()
django2.2 以上版本需要使用mysqlclient模块
报错就百度

'''下载不了mysqlclient'''
https://www.lfd.uci.edu/~gohlke/pythonlibs/#mysqlclient
找到适配版本:
	mysqlclient-1.4.6-cp36-cp36m-win_amd64.whl
    pip install mysqlclient-1.4.6-cp36-cp36m-win_amd64.whl

django orm

一、orm(对象关系映射)的介绍

​ 在关系型数据库和业务实体对象之间做一个映射。

​ orm的存在可以让不会MySQL的python程序员不需要使用SQL语句。

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

二、代码演示

1.先去应用目录下的models.py编写模型类
class User(models.Model):  # 类似于定义了表名
    # 在mysql语句中 id int primary key auto_increment
    id = models.AutoField(primary_key=True)  # 类似于定义了主键id
    # 在mysql语句中 name varchar(32)
    name = models.CharField(max_length=32)  # 类似于定义普通字段 name
    # 在mysql语句中 pwd int
    pwd = models.IntegerField()  # 类似于定义普通字段 pwd
    
2.数据库迁移/同步命令
	2.1.将models中有关数据库的操作记录下来(migration文件夹)
    	python38 manage.py makemigrations
    2.2.将操作真正影响到数据库
    	python38 manage.py migrate
	'''每当修改了models中与数据库相关的代码,都必须执行上述命令'''
    ps:可以简写 也可以指定应用单独迁移/同步

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

三、orm语法

1.查
	models.User.objects.filter()
    # 结果可以看成是一个列表套对象
    如何获取对象:
    	可以使用first()方法,如果没有只会返回None,我们可以if判断
2.增
	models.User.object.create()
3.改
	models.User.object.filter(id=1).update(name='jason')
4.删
	models.User.object.filter(id=4).delete()

四、orm外键关联

mysql表与表的关系
	# 一对多
    	外键字段建在多的一地方
    # 多对多
    	外键字段建在第三张关系表中
    # 一对一
    	外键建在查询频率高的表中
     
orm表与表的关系
	# 一对多
    	外键字段建在多的一方
    	publish = models.ForeignKey(to='Publish',on_delete=models.CASCADE)
    # 多对多
    	外键字段可以直接写在某张表中,orm会自动帮忙创建第三张表
        authors = models.ManyToManyField(to='Authors') 
    # 一对一
    	外键字段建在查询频率比较高的表中
 		detail = models.OneToOneField(to='AuthorDetail',on_delete=models.CASCADE)  

标签:文件,models,数据库,request,django,ORM,orm
From: https://www.cnblogs.com/Zhang614/p/16644938.html

相关文章

  • 各种开源数据库同步工具汇总
    (1)OGGOracleGoldenGate是一款实时访问、基于日志变化捕捉数据,并且在异构平台之间迚行数据传输的产品。GoldenGateTDM是一种基于软件的数据复制方式,它从数据库的日......
  • 【Django】连接MySQL与orm语法
    目录1.流程图2.静态文件及相关配置3.请求方法4.request对象方法5.链接数据库5.1pycharm连接MySQL5.2django链接MySQL6.Djangoorm7.orm语法7.1orm增删改查7.2or......
  • @RequestMapping注解详解
    功能RequestMapping注解是一个用来处理请求地址映射的注解,可用于类或方法的上方,用于类的上方可以作为父路径value属性 @RequestMapping(value={"/index","/hello"})p......
  • request对象方法与django连接MySQL
    静态文件配置1.编写一个登录功能1.1创建django项目并创建一个app1.2在urls.py添加一组对应关系urlpatterns=[path('admin/',admin.site.urls),path('log......
  • 数据库并发控制原理
    1.Transaction数据库事务以Begin()开始,以Commit()或Abort()结束。事务需要满足ACID属性。1.1ACIDAtomicityA:Atomicity原子性,即多个操作合并在一起,如一个原子一样不......
  • 今日内容 Django连接MySQL操作及ORM基本操作
    静态文件及相关配置1.先编写一个登录功能(1)创建django项目并创建一个app(2)在url.py添加一组对应关系(3)在app的views.py中编写登录核心逻辑......
  • 注解@RequestParam和注解@RequestBody的作用
    Springboot注解@RequestParam和@RequestBody@RequestParam@RequestMapping(value="test")@ResponseBodypublicObjecttest(@RequestParamIntegerus......
  • Java实现greenplum数据库中csv文件的导入和导出
    Java实现greenplum数据库中csv文件的导入和导出背景:greenplum数据库是在开源的PostgreSQL的基础上采用MPP架构实现的关系型分布式数据库,在使用greenplum数据库进行开发的......
  • HTML——form标签
    Form标签:HTML表单用于收集用户输入,form定义HTML表单。 表单能够包含 input元素,比如文本字段、复选框、单选框、提交按钮等等。子标签:imput标签,用于对复选框、......
  • Linux 中断 request_threaded_irq request_irq
     https://blog.csdn.net/mcsbary/article/details/103728816总结:request_threaded_irq:中断处理线程化,很好解决高频率的中断响应,类似异步处理request_irq:类似于同步处理......