Django 文件配置、pycharm及django连接数据库、表的增删改查 总结
静态文件配置
1.你在浏览器中输入网址能够有响应的资源返回给你
是因为后端已经提前给你开设该资源的接口,也就意味着你所能
访问到的资源 都是人家事先定义好的
2.django如何给用户开设资源接口呢?
在urls.py中 开设路由与视图函数对应关系
3.什么是静态文件
网站所使用的已经提前写好的css文件 js 图片 第三方的类库
一般情况下 我们都默认将网站所用到的静态文件统一放在一个叫
static文件夹下
该文件夹内部 还可以根据文件类型的不同划分成不同的子文件
css文件
js文件
font文件
img文件
第三方模块专门的文件
B
F
django不会自动帮你建static文件 需要你自己手动创建
4.如何暴露静态文件资源给用户访问
django为了你暴露方便 不需要你自己手动去urls.py中配置
你只需要在settings.py配置即可
STATIC_URL = '/static/' # 访问静态文件资源接口前缀
"""
如果你想访问静态文件资源 你必有以上面的名字开头
你才有访问静态文件资源的权限
一旦你是以接口前缀开头 我会拿着接口前缀后面的文件路径
去下面的列表中从上往下去每一个文件夹 找寻是否存在该文件 如果是直接返回
"""
# 自己手动配置路径
STATICFILES_DIRS = [
os.path.join(BASE_DIR,'static'), # 静态文件 存放在的文件路径
os.path.join(BASE_DIR,'static1'), # 静态文件 存放在的文件路径
os.path.join(BASE_DIR,'static2'), # 静态文件 存放在的文件路径
]
5.接口前缀动态绑定
html页面上的接口前缀跟你的配置文件中接口前缀动态绑定
在html页面上 固定写句式
{% load static %}
<script src='{% static 'Bootstrap/css/min.css' %}'></script>
request对象
该对象内部包含了所有请求相关的数据
request.method 获取前端发送的请求方式
GET
POST
全大写的字符串类型
携带数据的方式
GET请求携带数据的方式
url?username=jason&password=123
# 只要你的ulr后面符号get请求携带参数的特点 那么无论你发什么请求 你都可以通过request.GET获取数据
request.GET 获取符合GET请求携带数据的方式
你可以把它看成一个大字典
request.GET.get() # 默认只拿value列表中最后一个元素
request.GET.getlist() # 拿value整个列表
request.POST 获取post请求携带过来的数据
你可以把它看成一个大字典
request.POST.get() # 默认只拿value列表中最后一个元素
request.POST.getlist() # 拿value整个列表
pycharm链接数据库
左下方
或者右侧边缘都有连接入口
你只需要注意在第一次连接数据库的时候 需要下载一个数据库的驱动
django链接MySQL
django默认自带一个小型的sqlite(对日期格式的数据 不太兼容)
一定要注意是两步
1.在settings文件中配置
DATABASES = {
"NAME":...
"HOST":...
"PORT":...
"USER":...
"PASSWORD":...
"CHARSET":'utf8'
}
2.需要在项目名下面的__init__.py或者app下面的__init__.py文件中配置一下
告诉django不要使用默认的mysqldb模块连接数据库 而是使用pymysql
import pymysql
pymysql.install_as_MySQLdb()
django orm简介
对象关系映射
# 注意:django的orm不会自动帮你创建数据库 需要你手动自己创建数据库
# orm只能帮你自动创建表
# 个人建议:针对不同的django项目 使用不同的库 不要多个项目公用一个数据库
你要去app下面的models.py中书写模型类
表字段的书写
class User(models.Model):
# django orm当你没有指定主键的时候 orm会自动帮你新建一个字段名为id的主键字段
# 但是如果你的主键字段不想叫id 那么你只能手动设置 一旦orm识别到你手动设置了主键 它就不再自动创建
# id = models.AUTOField(primary_key = True)
username = models.CharField(max_length=32) # CharField字段一定要指定max_length参数
password = models.IntegerField()
数据库迁移命令
将在models里面的操作同步到数据库中
python3 manage.py makemigrations # 将数据库操作记录到小本本上 migrations文件夹内 日志功能 该命令不会直接影响数据库
python3 manage.py migrate # 将记录真正的同步到数据库中
"""
只要你动了跟数据库相关的models中的代码 你就必须执行上面的命令
一个都不能少 顺序也不能跌倒
"""
字段的增删改查
增字段的时候
1.给新增的字段设置默认值
2.给新增的字段设置为允许为空
数据的增删改查
查
models.User.objects.all() # 查询所有
models.User.objects.filter(**kwargs) # 条件之间是and的关系
# filter的结果你可以看成是一个列表 支持索引取值和切片操作 但是不支持负数
.first()
增
user_obj = models.User.objects.create(**kwargs)
# 该方法有一个返回值 就是当前被创建的对象本身
改
models.User.obejcts.filter(id=1).update(**kwargs)
# 批量更新
删
models.User.obejcts.filter(id=1).delete()
# 批量删除
Django 文件配置、pycharm及django连接数据库、表的增删改查 总结的更多相关文章
- Django静态文件配置-request方法-ORM简介-字段的增删改查
app的创建注意事项: 在Django新创建的app要在seetings.py中添加注册,才会生效 创建app:django-adminapp an startapp app名称 或者 python3 ...
- Django学习笔记--数据库中的单表操作----增删改查
1.Django数据库中的增删改查 1.添加表和字段 # 创建的表的名字为app的名称拼接类名 class User(models.Model): # id字段 自增 是主键 id = models. ...
- django模型层 关于单表的增删改查
关于ORM MTV或者MVC框架中包括一个重要的部分,就是ORM,它实现了数据模型与数据库的解耦,即数据模型的设计不需要依赖于特定的数据库, 通过简单的配置就可以轻松更换数据库,这极大的减轻了开发人员 ...
- Django学习笔记(10)——Book单表的增删改查页面
一,项目题目:Book单表的增删改查页面 该项目主要练习使用Django开发一个Book单表的增删改查页面,通过这个项目巩固自己这段时间学习Django知识. 二,项目需求: 开发一个简单的Book增 ...
- django之创建第8-1个项目-数据库之增删改查/数据库数据显示在html页面
1.为test.DB数据库预先创建下面数据 1 张三 16 2015-01-02 12 李四 17 2015-01-04 13 王五 14 ...
- python全栈开发day61-django简单的出版社网站展示,添加,删除,编辑(单表的增删改查)
day61 django内容回顾: 1. 下载: pip install django==1.11.14 pip install -i 源 django==1.11.14 pycharm 2. 创建项 ...
- 多表表与表关系 增删改查 admin
今日内容 多表表与表关系 增删改查表数据 admin 多表操作 表与表关系 默认指向主键 可能是隐藏主键 djamgo1.1默认级联(models. SET NULL解除级联) 一对一 先建立少的一方 ...
- MyBatis-单表的增删改查(CRUD)操作
在学习MyBatis的单表的增删改查操作之前,还是再次熟悉下MyBatis这个框架,只有对其熟悉的情况下,才能很好的使用,灵活的开发. MyBatis优点: ...
- hibernate对单表的增删改查
ORM: 对象关系映射(英语:Object Relational Mapping,简称ORM,或O/RM,或O/R mapping) 实现对单表的增删改查 向区域表中增加数据: 第一步: 新建一个Da ...
- MySQL数据库之表的增删改查
目录 MySQL数据库之表的增删改查 1 引言 2 创建表 3 删除表 4 修改表 5 查看表 6 复制表 MySQL数据库之表的增删改查 1 引言 1.MySQL数据库中,数据库database就是 ...
随机推荐
- Leetcode之动态规划(DP)专题-712. 两个字符串的最小ASCII删除和(Minimum ASCII Delete Sum for Two Strings)
Leetcode之动态规划(DP)专题-712. 两个字符串的最小ASCII删除和(Minimum ASCII Delete Sum for Two Strings) 给定两个字符串s1, s2,找到 ...
- 【VS开发】【DSP开发】浅谈Linux PCI设备驱动(二)
我们在 浅谈Linux PCI设备驱动(一)中(以下简称 浅谈(一) )介绍了PCI的配置寄存器组,而Linux PCI初始化就是使用了这些寄存器来进行的.后面我们会举个例子来说明Linux PCI设 ...
- mysql --single-transaction 在从库导入完数据以后要在配置文件/etc/my.cnf 中加上read_only=1的参数
1.在做数据库的主从时,防止在这个过程中,有数据访问进来,要: 要想连super权限用户的写操作也禁止,就使用"flush tables with read lock;",这样设置 ...
- Spark中分布式使用HanLP(1.7.0)分词示例
HanLP分词,如README中所说,如果没有特殊需求,可以通过maven配置,如果要添加自定义词典,需要下载“依赖jar包和用户字典". 分享某大神的示例经验: 是直接"java ...
- mysql5.6 多实例标准化安装
1.检查防火墙 是否关闭service iptables stopchkconfig iptables offservice iptables status 2. SELINUXvim /etc/se ...
- python_操作MySQL 初解 之__<类方法调用并 增-删-改-查>
文件一: 调用(sqls文件) # 导入模块 import pymysql from sqls import * # 创建类 class KaoShi(object): # 初始化 def __ini ...
- CVE-2018-19824漏洞学习
简介 在Linux内核4.19.6之前,本地用户可以通过在Sound / USB /card.c.的usb_audio_probe中错误处理一个恶意USB声音设备(没有接口)来利用ALSA驱动程序中的 ...
- javaScript基础知识总汇
javaScript是什么: 1.JavaScript 运行在客户端(浏览器)的编程语言 2.用来给HTML网页增加动态功能 3.用来给HTML网页增加动态功能. 4.Netscape在最初将其脚本语 ...
- java实现spark常用算子之filter
import org.apache.spark.SparkConf;import org.apache.spark.api.java.JavaRDD;import org.apache.spark.a ...
- JS中的事件传播流程
JS中的事件传播流程 1,Javascript与HTML之间的交互是通过事件实现的. 事件,就是文档或浏览器窗口中发生的一些特定的交互瞬间. 可以使用侦听器来预定事件,以便事件发生时执行相应代码. 2 ...