Django基础操作

Django 特点
    1.强大的数据库功能
        拥有强大的数据库操作接口(QuerySet API),如需要也能执行原生SQL。
    2.自带强大后台
        几行简单的代码就让你的网站拥有一个强大的后台,轻松管理内容!
    3.优雅的网址
        用正则匹配网址,传递到对应函数,随意定义,如你所想!
    4.模板系统
        强大,易扩展的模板系统,设计简易,代码,样式分开设计,更容易管理。
        注:前后端分离时,也可以用Django开发API,完全不用模板系统。
    5.缓存系统
        与Memcached, Redis等缓存系统联用,更出色的表现,更快的加载速度。
    6.国际化
        完全支持多语言应用,允许你定义翻译的字符,轻松翻译成不同国家的语言。

文件说明:
    1.urls.py
        网址入口,关联到对应的views.py中的一个函数(或者generic类),访问网址就对应一个函数。
    2.views.py
        处理用户发出的请求,从urls.py中对应过来, 通过渲染templates中的网页可以将显示内容,比如登陆后的用户名,用户请求的数据,输出到网页。
    3.models.py
        与数据库操作相关,存入或读取数据时用到这个,当然用不到数据库的时候 你可以不使用。
    4.forms.py
        表单,用户在浏览器上输入数据提交,对数据的验证工作以及输入框的生成等工作,当然你也可以不使用。
    5.templates 文件夹
        views.py 中的函数渲染templates中的Html模板,得到动态内容的网页,当然可以用缓存来提高速度。
    6.admin.py
        后台,可以用很少量的代码就拥有一个强大的后台。
    7.settings.py
        Django 的设置,配置文件,比如 DEBUG 的开关,静态文件的位置等。

学习的链接:
https://www.dusaiphoto.com/article/detail/4/
https://www.cnblogs.com/larken/p/10516033.html
工具或文件:
Ctrl+U:打开源码
Ctrl+Shift+i:调试台
jquery.js:https://jquery.com/download/
popper.js:https://popper.js.org/
Layer插件:https://layer.layui.com/
Bootstrap 4:https://getbootstrap.com/docs/4.1/getting-started/download/
Python文档:https://docs.python.org/3/library/index.html
Django官网:https://www.djangoproject.com/
SQLiteStudio:https://sqlitestudio.pl/index.rvt
Bootstrap官方文档:https://getbootstrap.com/docs/4.1/getting-started/introduction/
Markdown 语法介绍:https://coding.net/help/doc/project/markdown.html

# 建立一个项目
django-admin startproject my_site

# 运行项目
python manage.py runserver

# 更改端口号
python manage.py runserver 8080

# 创建一个应用app
python manage.py startapp polls

# 有关投票应用的 CREATE TABLE SQL 语句
python manage.py sql polls

# 创建一些表
python manage.py makemigrations 

# 创建一些表的字段
python manage.py migrate


# 存储在E:\Python\Django 基础教程\my_site\polls\migrations\0001_initial.py

# 自动执行数据库迁移并同步管理你的数据库结构的命令
python manage.py sqlmigrate 

# 在数据库里创建新定义的模型
python manage.py migrate

# 改变模型需要三步
# 编辑models.py 文件
# 运行 python manage.py makemigrations polls  为模型的改变生成迁移文件
# 运行 python manage.py migrate 来应用数据库迁移

# 初试 API
python manage.py shell

# 创建一个管理员账号
python manage.py createsuperuser

# 输入python manage.py shell就可以进入shell:
输入下面两行指令就可以轻松删除User数据库:
>>> from django.contrib.auth.models import User
>>> User.objects.all().delete()


"""
模型层:http://www.liujiangblog.com/course/django/94
    模型和字段
    关系类型字段
    字段的参数
    多对多中间表详解
    模型的元数据Meta
    模型的继承
    用包来组织模型
    查询操作
    查询集API
    不返回QuerySets的API
    查询参数及聚合函数
编辑后台界面:https://www.cnblogs.com/wumingxiaoyao/p/6928297.html
"""
# 查询集API
"""
filter:过滤查询对象
exclude:排除满足条件的对象
annotate:使用聚合函数
order_by:对查询集进行排序
reverse:反向排序
distinct:对嘻哈寻集去重
values:返回包含对象具体值的字典的QuerySet
values_list:与value类似,只是返回的是元组而不是字典
dates:根据日期获取查询集
datetimes:根据时间回去查询集
none:创建空的查询集
all:获取所有的对象
union:并集
intersection:交集
difference:差集
select_related:附带查询关联对象
prefetch_related:预先查询
extra:附加SQL查询
defer:不加载制定字段
only:只加载制定的字段
using:选择数据库
select_for update:锁定选择的对象,直到事务结束
raw:接收一个原始的SQL查询

"""
# 不返回QuerySet的API
"""
get:获取单个对象
create:创建对象,无需save
get_or_create:查询对象,如果没有找到就新建对象
update_or_create:更新对象,如果没有找到就创建对象
bulk_create:批量对象的个数
count:统计对象的个数
in_bulk:根据主键值得列表的,批量返回对象
iterator:获取包含对象的迭代器
latest:获取最近的对象
earlier:获取做早的对象
first:获取第一个对象
last:获取最后一个对象
aggregate:聚合操作
exists:判断queryset中是否有对象
delete:批量删除对象
as_manager:获取管理器
"""
# 查询参数及聚合函数
"""
exact:精确匹配
iexact:不区分大小的精确匹配
contains:包含匹配
icontains:不区分大小的包含匹配
in:在。。。之内匹配
gt:dayu
gte:大于等于
lt:小于
lte:小于等于
startswith:从开头匹配
istartswith:不区分大小从开头匹配
endswith:从结尾匹配
iendswith:不区分大小从结尾匹配
range:范围匹配
date:日期匹配
year:年份
month:月份
day:日期
week:第几周
week_day:周几
time:时间
hour:小时
minute:分钟
second:秒
isnull:判断是否为空
regex:区分大小写的正则匹配
iregex:不区分大小写的正则匹配
"""

CSRF攻击

CSRF攻击你可以理解为:攻击者盗用了你的身份,以你的名义发送恶意请求。还是拿删除文章举例:

1.用户登录了博客网站A,浏览器记录下这次会话,并保持了登录状态;
2.用户在没有退出登录的情况下,又非常不小心的打开了邪恶的攻击网站B;
3.攻击网站B在页面中植入恶意代码,悄无声息的向博客网站A发送删除文章的请求,此时浏览器误以为是用户在操作,从而顺利的执行了删除操作。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

迷心兔

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值