⽹关协议,表和字段的⾃定义命名,301与302状态码区别,jwt,全局唯⼀id⽣成(雪花算。。。
⼀、⽹关协议
CGI:
通⽤⽹关接⼝(Common Gateway Interface/CGI),可以让浏览器向服务器上的程序请求数据。
CGI 是⼀种服务器和后端可执⾏程序之间的交互标准
优点
CGI 的优点也就是它的作⽤了。CGI 程序提供了很多静态⽹页⽆法实现的功能,⽐如加载数据、数据运算等等。早期的动态⽹页基本都是基于 CGI 实现的。
缺点
在 CGI 协议下,解析器的反复加载是性能低下的主要原因。每个发送到服务器的请求,都需要经过『启动进程、处理请求、结束进程』三个步骤,所以当访问量增⼤时,系统资源的开销也会增⼤,导致服务器性能下降甚⾄服务中断。
FastCGI:
WSGI:
Web服务器⽹关接⼝(Python Web Server Gateway Interface,缩写为WSGI)是为Python语⾔定义的Web服务器和Web应⽤程序或框架之间的⼀种简单⽽通⽤的接⼝。⾃从WSGI被开发出来以后,许多其它语⾔中也出现了类似接⼝。
WSGI 中存在两种⾓⾊:接受请求的 Server 和处理请求的 Application,它们底层是通过 FastCGI 沟通的。
uWSGI:
⼀个Web Server,即⼀个实现了WSGI的服务器,⼤体和Apache是⼀个类型的东西,处理发来的请求。
uwsgi:
uWSGI⾃有的⼀个协议 ,⽤于定义传输信息的类型。
三、状态码301和302的区别
301:永久重定向
301⽐较常⽤的场景是使⽤域名跳转。
注意: 301请求是可以缓存的, 即通过看status code,可以发现后⾯写着from cache。
302:临时重定向
⽐如未登陆的⽤户访问⽤户中⼼重定向到登录页⾯。
访问404页⾯会重新定向到⾸页。
区别:
302重定向只是暂时的重定向,搜索引擎会抓取新的内容⽽保留旧的地址,因为服务器返回302,所以,搜索搜索引擎认为新的⽹址是暂时的。
⽽301重定向是永久的重定向,搜索引擎在抓取新的内容的同时也将旧的⽹址替换为了重定向之后的⽹址。
nginx配置:
rewrite后⾯接上permenent就代表301跳
rewrite后⾯接上redirect就代表302跳
四、layui:经典模块化前端框架
五、不同程序可以使⽤同⼀个数据库。
nginx和网关怎么配合使用六、django如何⾃定义表名?
我们知道,django在创建表时,数据库中的表名会⾃动加⼀个应⽤名作为前缀(app01_user),那么
如何⾃定义呢?
在meta 类中指定表名,在字段中通过db_column指定列名
如下所⽰:
class Record(models.Model):
content=models.CharField(max_length=32,db_column='record_content')
class Meta:
db_table="Record"
七、DG软件(DATAGRIP)
jetbrains旗下数据库连接软件(类似navicat)
同旗下ide:idea pycharm
⼋、什么是jwt
九、django 中OneToOneField继承了Foreignkey,但其本质就是Foreignkey设置了⼀个unique=True。
⼗、CommonMiddleware中间件
django中请求路径带斜杠和不带斜杠
基于APPEND_SLASH和PREPEND_WWW的设置来重写URL。
如果APPEND_SLASH设为True,并且初始URL 没有以斜线结尾以及在URLconf 中没到对应定义,这时形成⼀个斜线结尾的新URL。如果这个新的URL存在于URLconf,那么Django 重定向请求到这个
新URL上。否则,按正常情况处理初始的URL。
⽐如,如果你没有为foo/bar定义有效的正则,但是为foo/bar/定义了有效的正则,foo/bar将会被重定向到foo/bar/。
⼗⼀、全局唯⼀id⽣成
雪花算法:
1位,不⽤。⼆进制中最⾼位为1的都是负数,但是我们⽣成的id⼀般都使⽤整数,所以这个最⾼位固定是0
⼗⼆、数据库相关
1. 基于对象的跨表查询是⼦查询;基于双下划线的跨表查询是联表查询
2. left join是左边表有的全保存,右边表的没有的就给null
3. right join是右边表有的全保存,左边表没有的给null
4. inner join是保存两个表共有的字段
5. full join是两个表的所有字段都保存,两边没有的对应给null
⼗三、函数与⽅法的区别
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论