django 静态文件的配置 orm 中 字段与数据的增删改查 使用MySQL数据库
模板语法:(只有一下两种情况) 1:{{ obj}} 变量相关 2:{% for i in list %} 逻辑相关{% endfor %}今日内容:创建路由:新创建的路由必须去settings注册创建:python.manage.py startapp app02注册:1.app (支持简写)2.app02.apps.App01Config(全称) 启动django项目的时候,确保一个端口只有一个django项目在占用,不然容易造成bug 用户能够访问的资源都在url中,只有url中开设的相关资源,你才能访问到(*****)html文件默认全都放在templates文件夹下 静态文件:前端框架,图片,css,js...默认放在static文件夹下下 static文件夹中默认创建的子文件夹css文件夹: 当前网站所有的样式文件js文件夹: 当前网站所有的js文件img文件夹: 当前网站所有的图片文件 静态文件的配置:1.STATICFILES_FIRS = [os.path.join(BASE_DIR,'static')2.STATICFILES_FIRS =(os.path.join(BASE_DIR,'static'),)注:1.都端资源都需要手动暴露给用户,这样你只要输入static文件夹内具体文件的路径,就能访问到2.STATIC_URL = '/static' 中 static 只是接口前缀,而不是文件夹的名字3.静态文间动态解析,动态的获取接口浅醉{% load static %}<link rel="stylesheet" href="{% static 'bootstrap-3.3.7-dist/css/bootstrap.min.css' %}"><script src="{% static 'bootstrap-3.3.7-dist/js/bootstrap.min.js' %}"></script>重点:***** python manage.py makemigrations:默认给所有APP生成迁移脚本(数据迁移记录) python manage.py migrate:migrate做了什么:1.将相关的迁移脚本翻译成SQL语句,在数据库中执行这个SQL语句。2.如果这个SQL语句执行没有问题,那么就会将这个迁移脚本的名字记录到django_migrations中。migrate怎么判断哪些迁移脚本需要执行:1.将代码中的迁移脚本和数据库中django_migrations中的迁移脚本进行对比,如果发现数据库中,没有这个迁移脚本,那么就会执行这个迁移脚本。 这两中命令调用默认为全局,即对所有最新更改的model或迁移文件进行操作。如果想对部分app进行操作,就要在其后追加app name:form表单默认是ge(url+数据)请求方式,可通过method修改为post注: 改为post后,需要在settings中注掉一个中间建 csrf,用post提交数据的时候,django会去检查是否有一个csrf的随机字符串,如果没有就会报错.# 'django.middleware.csrf.CsrfViewMiddleware',eg: http://127.0.0.1:8000/login/?username=lina&password=123 视图函数的处理方式: 方式一: if request.method == 'GET':print(request.method) # 能够获取前端请求方式 并且是全大写的字符串return render(request,'login.html') elif request.method == 'POST':return HttpResponse("拿到了 老弟") 方式二: if request.method == 'POST':return HttpResponse('来啦 宝贝') return render(request,'login.html')注:视图函数中 一般会先处理get请求获取前端数据:request.method获取请求方式GET:request.GET获取前端get提交的数据(类似一个大字典)取值:value是列表方式一: request.GET.get('xxx')request.GET.getlist('xxx')方式二: request.GET['XXX']注: 1.get默认取列表中的最后一个数据2.getlist会把列表中的数据全取出来3.强烈不建议使用第二种方式,列表中无数据会报错POSTrequest.POST获取前端post提交的数据(就类似于是一个大字典)取值request.POST.get('username') # 虽然value是一个列表 但是默认只取列表最后一个元素# 强烈不建议你使用中括号的形式取值# 如果想直接把列表全部取出(******)request.POST.getlist('hobby')数据库的配置: 因为django默认使用的是sqlite数据库,所以要用其他数据库话要做到以下两步; 1.修改settingsDATABASES = {'default': {'ENGINE': 'django.db.backends.mysql','NAME':'fei','HOST':'127.0.0.1','PORT':3306,'USER':'root','PASSWORD':'678666','CHARSET':'utf8'}} 2.在项目名/应用名 下的__init__文件中让其使用pymysql连接数据库,而不是用mysqldbimport pymysqlpymysql.install_as_MySQLdb() 注: settings中k,v键值对中k要大写django orm: 对象关系映射 类---------->表 对象-------->一条记录 对象.属性--->字段对应的值 模型类:class M(models.Model):id = models.AutoField(primary_key=True)username = models.CharField(max_length=255)password = models.IntegerField() 注:1.在django中的orm中可以不写主键字段,django会帮你创建2.自己创建了,django不会再帮你创建3.charfield中必须指定max_length参数4.models中数据有变动后,需要执行 python manage.py makemigrations 与 python manage.py migrate,两者缺一不可表字段的增删改查:增:1.给新增字段设置默认值addr = models.CharField(max_length=32,default='China')2.给新增字段设置为空age = models.IntegerField(null=True) # 该字段允许为空删:在models中注释掉 该字段 然后执行更新命令注:1.执行完后该字段对应的所有数据全部删除2.不会用到真正意义上的删除(*******)慎用对数据的增删改查:查:先到models模块 from app01 import models查的方式:1.models.User.objects.all()2.models.User.objects.get(xxx=xxx)3.models.User.objects.filter(xxx=xxx)4.models.User.objects.filter(xxx=xxx).fist()注: 1.get方法 拿到数据对象本身,当查询条件不存在 会直接报错 不推荐用2.filter方法 得到一个列表,列表内是数据对象本身,当查询条件不存在 不会会报错,会返回一个空列表;filter中支持多个参数,参数间是and关系3.all方法 查全部数据 得到一个queryset对象 可以直接点query查看年内部对应的sql语句queryset对象 可以当成一个列表来操作,支持索引(只支持正数索引不支持负的),支持切片(切出来的是新的queryset对象)4.filter().fist 拿到列表中第一个数据对象 推荐用这个重点:用索引取值,当列表中没数据时会报错;用first取值 虽然内部也是按照索引取值 但是没有数据 也不会报错 返回的是None 内部机制对其进行了优化增:方法1.models.User.objects.create(username=username,password=password)2.user_obj = models.User(username=username,password=password)user_obj.save()删:(从前端获取要删除数据的id,根据id删除)models.User.objects.filter(条件).delete()改:(查出要修改的数据,渲染到页面让用户修改,然后在传到后端进行修改)1. models.User.objects.filter(条件).update()2.edit_obj.username = usernameedit_obj.password = passwordedit_obj.save()注: 1.filter 拿到是一个列表 ,他属于批量操作,会一次性全部修改类似for循环2.会从头到尾将所有字段全部修改一遍,效率极低.
转载于:https://www.cnblogs.com/wyf20190411-/p/11531087.html
django 静态文件的配置 orm 中 字段与数据的增删改查 使用MySQL数据库相关推荐
- Django/静态文件/apps配置/模型/数据库/shell
一.debug和basedir 1.debug 2.basedir 当前文件的上一级的上一级绝对路径:/root/PycharmProjects/bookmanage # Build paths in ...
- 实现对mysql增删改查_Java语言实现对MySql数据库中数据的增删改查操作的代码
简单说操作的步骤: 1.连接数据库 2.将SQL语句发送到数据库 3.执行SQL语句 这里举个例子: 在一个数据库中有个students表,表中有学号(Id),姓名(Name),性别(Sex),地址( ...
- SpringBoot+Mysql+MDUI实现数据的增删改查和列表操作及单,多文件上传实例
SpringBoot+Mysql+MDUI实现数据的增删改查和列表操作及单,多文件上传实例 开源地址:https://gitee.com/jfkjrym/demo.git evan原创内容!evan原 ...
- doraemon的python(大更新) django静态文件的配置(出错多的地方)
### 12.2 静态文件的使用#### 12.2.1静态文件的配置和使用 settings.py```python STATIC_URL = '/static/' #别名 STATICFILES_D ...
- 各种 django 静态文件的配置总结【待续】
2019独角兽企业重金招聘Python工程师标准>>> 最近在学习django框架的使用,想引用静态css文件,怎么都引用不到,从网搜了好多,大多因为版本问题, 和我现在的使用的da ...
- node-red mysql的增删改查_通过curl或者http请求对elasticsearch中的数据进行增删改查...
最近学习elasticsearch的数据存储,整体语法还是比较规则的.可以使用浏览器.postman.命令行等进行操作. elasticsearch官网的解释最官方,请查看下面的地址 1. 查询当前集 ...
- C#的ASP.NET中关于OleDb连接数据库执行增删改查
一句话解释C#调用数据库原理: 在Web.config文件里面配置相应的代码,然后写相应的oleDB数据库代码进行连接操作 web.config配置 <?xml version="1. ...
- mock模拟的数据能增删改查吗_如何在Vue中使用Mockjs模拟数据的增删查改
之前一直使用json-server在前端开发时,搭建本地数据接口测试,但有时又需要将做好的项目放于 github page上做项目演示.在本地时,json server很好使用,但一旦放在github ...
- mysql修改字段默认值_MySQL增删改查操作
增删改查操作 查询表中的所有的记录:select from 表名(xs) 创建数据库:create database if not exists xsgl; 8.2创建表:cerate table i ...
- MySQL对于表中数据的增删改查
增删改查(curd) curd的解释: 代表创建(Create).更新(Update).读取(Retrieve)和删除(Delete) 查询基本使用 查询所有列(表中所有字段) select * fr ...
最新文章
- 在线实时大数据平台Storm版本兼容的问题
- esp8266设置sta失败_使用NodeMCU_ESP8266驱动OLED
- KaleidoscopeGame
- 资源 | Deeplearning.ai课程与笔记汇总
- 前端学习(1700):前端系列javascript之作用域和自由变量
- DPVS_吊打面试官的项目——DPVS
- mongodb分片部署
- php get_magic_quotes_gpc()
- python一对一视频教学-问Python,一对一直播开发需要推流器吗?
- yolov5模型框架详解
- oracle中avl,AVL CRUISE软件功能简介
- JPG怎么批量转换成PDF
- c语言常量定义的数组初始化
- GBDT梯度提升之二分类算法个人理解
- 从哲学的视角看待项目生命周期——构建不一样的世界
- DCD、DTR、DSR、RTS及CTS等五个状态指示分别代表什么意思?
- 不是python文件操作的相关函数_从零开始学Python(七):文件存储I/O流和异常捕捉
- 《C++ 黑客编程揭秘与防范(第2版)》——6.2 详解PE文件结构
- 操作系统-------用P,V操作解决生产者和消费者问题(详解!!!)
- 在IDEA中写Python
热门文章
- Docker 开篇 1 | 树莓派中搭建Docker
- mysqlbinlog结合sed命令恢复update时未加where条件之前的数据
- 阿里巴巴举办全球数学竞赛 助力基础科学杰出人才培养
- 拇指接龙游戏从WIN32向Android移植过程问题记录(1)
- nagios无法通过web访问
- JavaScript字符串split方法
- 30岁前,一定要完成哪些人生规划?
- Linux Kernel 5.0 近日正式面向公众
- 互联网的职场红利已经没了
- rpm 安装 mysql5.6.28_Linux(Ubuntu)下Mysql5.6.28安装配置方法图文教程