day 67 django orm的基础
django项目
安装:
创建项目
配置(setting,static,csrf)
创建app,python manage.py startapp app1
三部分
urls.py路由配置
1,普通正则
2分组正则
传位置参数:url(r'^blog/(\d+)/',views.blog)
3分组命名(得到的是关键字参数)
url(r'^blog/(?P<year>(\d+)/',views.blog')) 视图函数要传参blog(request,year)
4用name指定别名
url(r'^blog/$', views.blog, name='blog') 这里我们使用别名来进行反向解析,为了得到动态的HTML页面跳转效果
html里面:{%url 'blog'%}
views函数里面from django.urls import reverse
函数返回值里面return reverse("blog")
5使用命名空间 以下网址前缀就会有blog
url(r'^blog/', include(app1.urls,namespace='num1' 2017 12)) 这里也牵涉到反向解析 后边两个参数 是app1的url 的传参
HTML里面{% url 'num1:blog'%} url后面空一格写单引号,引号里面写namespace然后冒号name
views里面:from django.urls import reverse
返回值return redirect(reverse("num1:blog",arg=(2017,12)))
views.py
request对象
response对象
FBV和CBV
模板语言
{{变量}}
{{变量.}}如果变量是一个字典,我们直接使用这样的方法去取值
{%for%}循环
{%endfor%}结束循环
{%if%}判断
{% esle %}
{%endif%}结束判断
过滤器(filter) {{变量名|filter_name:参数}}
{{时间对象|date:'Y-m-d'}}
{%url%}
{%load static%}
{%static 'img/1.png'%}
母板,继承,块,组件
连接数据库(orm)
五步四部分
1创建数据库
2在app下的models.py里面创建model类,继承models.Model
3.在setting.py里面配置数据库连接信息
4在项目project的init里面写上import pymysql, pymysql.install_as_mysqldb() # 这一句使用我们的pycharm会自动补全,有提示信息
5,发命令
python manage.py makemigrations # 收集变更
python manage.py migrate # 翻译成sql语句执行
四部分
models.py
django
pymysql
mysql
orm:类 数据表
类的属性
数据列 (表里面的字段)
对象 数据行
对表格进行增删改查:
查:
models.类名,objects.all() 取到所有的数据是一个列表 [取不到值是不会报错的,就显示为空]
models.类名,objects.get() 取到一个对象[特点是取不到值就会报错]
mo
. 老师编辑功能写完
1. magic2函数 --> 用两层for循环解决 全栈8期之殇 问题
2. 模板语言 in 语法
{% if xx in xx_list %}
{% endif %}
搜索框(pymysql LIKE %)
pymysql like查询 拼接占位符时注意的情况
2. Django再次入门
内容回顾
HTTP请求的本质:
1. socket server是启动的 bind((ip, port)) accept
2. 浏览器(socket 客户端)输入 域名 回车
2.1. 解析域名 -> IP和端口 --> 建立连接
2.2 发GET请求 b'GET / HTTP/1.1\r\nhost:127.0.0.1:8000\r\n\k2:v2r\n\r\n请求体'
2.3 发POST请求 b'POST / HTTP/1.1\r\nhost:127.0.0.1:8000\r\n\k2:v2r\n\r\n?name=alex&age=18'
3. 服务端 接收数据
4. 解析数据, 拿到URL、请求的方法等等 --> 处理数据
5. 给浏览器发送 响应 消息 --> b'HTTP/1.1 200 OK\r\nContent-Type:text/html; charset=utf-8\r\nk2:v2\r\n\r\n响应体'
6. 浏览器断开此次连接
Django 常用命令
django-admin startproject s8 --> 执行这条命令的目录下创建了一个项目
cd s8
python manage.py runserver IP:port
(目前阶段)Django新建项目要做的事儿:
settings.py
1. 注释csrf那一行
2. 配置Templates模板(HTML文件)的目录
1. 1.8版本的设置
3. 配置静态文件(js、CSS、img、插件等)的路径
1. 外号/别名 --> 在HTML页面上用
2. 静态文件存放的真实目录
Django内容:
APP
URLConf
dels.类名.objects.exclude(条件) 得到除了这个条件的其他的结果 models.类名.objects.first() models.类名.objects.last() 增加: 一种方式: models.类名.objects.create(name='peter') 一种方式: obj = models.类名(name='peter') obj.save() 删除: models.类名,objects.filter(age=19).delete() 修改: models.类名.objects.filter(age=90).update(name='greate') 单个对象是不能够调用update的[只有jQueryset才可以调用update方法] update()方法对于任何结果集queryset均有效,这意味着我们可以同时更新多条记录update返回的是一个整型数据类型,表示受影响的条数 我们的对象要想使用修改操作只能够使用下面的方式直接赋值 obj=models.类名.objects.get(id=1) obj.name='green' obj.save()
day 67 django orm的基础的更多相关文章
- 【python】-- Django ORM(基础)
Django ORM(基础) Django 框架十分强大,自带数据库操作功能.Django 跟 SQLAchemy 一样,也是通过ORM(Object Relational Mapping,关系对象映 ...
- day 67 django 之ORM 基础安装
一 ORM的基础部分 1 ORM的概念 对象关系映射(Object Relational Mapping(映射),简称ORM)模式是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术. 2 ...
- Django ORM --- 建表、查询、删除基础
1.什么是ORM ORM的全称是Object Relational Mapping,即对象关系映射.它的实现思想就是将关系数据库中表的数据映射成为对象,以对象的形式展现,这样开发人员就可以把对数据库的 ...
- Django ORM模型的一点体会
作者:Vamei 出处:http://www.cnblogs.com/vamei 严禁转载. 使用Python的Django模型的话,一般都会用它自带的ORM(Object-relational ma ...
- Django ORM那些相关操作
一般操作 https://docs.djangoproject.com/en/1.11/ref/models/querysets/ 官网文档 常用的操作 <1> all() ...
- Django ORM模型:想说爱你不容易
作者:Vamei 出处:http://www.cnblogs.com/vamei 严禁转载. 使用Python的Django模型的话,一般都会用它自带的ORM(Object-relational ma ...
- 《玩转Django2.0》读书笔记-Django建站基础
<玩转Django2.0>读书笔记-Django建站基础 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.网站的定义及组成 网站(Website)是指在因特网上根据一 ...
- 关于orm 的基础3 day67
day67 ORM 特殊的语法 一个简单的语法 --翻译成--> SQL语句 语法: 1. 操作数据库表 创建表.删除表.修改表 2. 操作数据库行 增.删.改.查 怎么连数据库: 需要手动创建 ...
- Django ORM那些相关操作zi
Django ORM那些相关操作 一般操作 看专业的官网文档,做专业的程序员! 必知必会13条 <1> all(): 查询所有结果 <2> filter(**kwargs) ...
随机推荐
- function_exists
在已经定义的函数列表(包括系统自带的函数和用户自定义的函数)中查找 function_name. 如果 function_name 存在且的确是一个函数就返回 TRUE ,反之则返回 FALSE .
- grid的简单使用
<!DOCTYPE html><html><head><meta charset="UTF-8"><title>grid ...
- 牛客练习赛24-B-贪心
链接:https://www.nowcoder.com/acm/contest/157/B来源:牛客网 题目描述 凤凰于飞,翙翙其羽,亦集爰止. ...
- SpringCloud 将服务注册到Eureka Server上
提供好服务生产者: 1.添加spring-cloud-starter-eureka依赖 <dependencyManagement> <dependencies> <de ...
- Linux中环境变量文件
一.环境变量文件介绍 转自:http://blog.csdn.net/cscmaker/article/details/7261921 Linux中环境变量包括系统级和用户级,系统级的环境变量是每个登 ...
- vue购物车功能源码
<!DOCTYPE html><html lang="en"> <head> <meta charset="UTF-8" ...
- Vuejs选项卡案例
css .active { color: red; border-bottom: 1px solid red; } ul li { padding: 0 15px; float: left; list ...
- Oracle 12c启动时PDBs的自动打开
Pluggable Database(PDB)为Oracle 12c中的一个重要的新特性, 但启动12c实例时并不会自动打开PDB数据库,这样,在启动实例后必须手动打开PDBs. 1. 实例启动后,手 ...
- SQL调优(SQL TUNING)并行查询提示(Hints)之pq_distribute的使用
pq_distribute提示通常被用于提升数据仓库中分区表间的连接操作性能. pq_distribute提示允许你确定参与连接的表数据行在生产和消费并行查询服务进程间如何分配. pq_distrib ...
- react native 入门 (1)- 环境搭建, 创建第一个Hello World
Create React Native App 是开始构建新的React Native应用程序的最简单方法.它允许您启动项目而无需安装或配置任何工具来构建本机代码 - 无需安装Xcode或Androi ...