django 我的博客 (慕课网视频)笔记
用到的命令 1.创建项目
django-admin startproject myBlog
2.创建app
cd [项目名]
python3 manage.py startapp blog 3.数据迁移
python3 manage.py makemigrations
python3 manage.py migrate (修改modes.py文件之后需要执行 之前的版本是python3 manage.py syncdb) 4.运行服务 python3 manage.py runserver
5.创建管理员
python3 manage.py createsuperuser 6.查看sql语句
python3 manage.py sqlmigrate 应用名 文件id 7.进入python交互模式
python3 manage.py shell
路由分发: 根目录中 urls.py文件
urlpatterns = [
path('admin/', admin.site.urls),
# path('', bv.index),
path('index/', include('blog.urls')),
] 在浏览器中这样访问:http://127.0.0.1:8000/index/
include的作用是防止app过多时 urls.py文件太复杂
# path参考 https://blog.csdn.net/qq_26024867/article/details/79679329
URL对应可以有参数,例如:
url(r'^index/', views.index, {'name': 'root'}),然后在views.py中写的时候记得加上一个名为name的参数:
def index(request, name):
print(name)
return HttpResponse("OK") 这样就会打印出root

template中{{ key }} 的作用是 接收后端传递的dict数据{key:value}
template下面再用app名字分级的作用是区分不同app中引用的index.html
模版语言:
一般在views.py的一个逻辑函数,都会return ... 比如
return render(request,"HTML模板的路径", {'obj':1234,'k1':[1,2,3,4],'k2':{'name':'root','age':19}})
在html文件中取值:
取单值:
{{ obj }} 取列表元素
{{ k1.0 }} 取字典中的元素
{{ k2.name }} 循环取列表
{% for i in k1 %}
{{ i }}
{% endfor %} 循环取字典
循环keys
{% for row in k2.keys %}
{{ row }}
{% endfor %} 循环values
{% for row in k2.values %}
{{ row }}
{% endfor %} 循环key和value
{% for k,v in k2.items %}
{{ k }}-{{ v }}
{% endfor %}
Django的生命周期 路由系统 -> view.py (获取模板+数据->渲染)-> 返回str
获取用户请求的数据:
request.POST.get() request.GET.get() request.FILES.get() ...............getlist() 上传文件 obj = request.FILES.get("文件名")
obj.name #文件名
obj.size #上传文件的字节
obj.chunks #分块取数据 要上传文件时候要在form表单加入特殊的设置 返回数据:
1.redirect("URL")
2.render(request,"HTML模板的路径", {用于渲染的字典})
3.HttpResponse("字符串")
<input type= name= value=>标签
type=text 表示文本
type=submit 表示提交
name= 表示该元素名称
value= 该标签上显示的内容
<form action= >
action 是一个URL类型,规定当提交表单时向何处发送表单数据。
Cross-site request forgery 也就是csrf 的两种避免方法:
1. 在form表单中加 {% csrf_token %}
2. 注释setting,py 中的
MIDDLEWARE = [
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
# 'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
]
django 我的博客 (慕课网视频)笔记的更多相关文章
- Django:(博客系统)使用使用mysql数据->后台管理tag/post/category的配置
Django后台一般是不需要人为的去开发的,因为django已经通过配置实现哪些模块是后台需要管理,如何排序,列表展示哪些列,列显示名称,是否为空(默认值),过滤条件,分页页数,列表中哪些项可编辑等等 ...
- Django快速搭建博客系统
Django快速搭建博客系统 一.开发环境 Windows 7(64bit) python 3.6 https://www.python.org/ Django 2.0 https://www. ...
- Django搭建简易博客
Django简易博客,主要实现了以下功能 连接数据库 创建超级用户与后台管理 利用django-admin-bootstrap美化界面 template,view与动态URL 多说评论功能 Markd ...
- 个人博客添加网易云音乐Flash插件
博客底部添加网易云音乐播放插件 歌单或者歌曲外链可从音乐界面"生成外链播放器"中得到,选择Flash播放插件即可 footer.html文件增加 实现效果: 历史精选文章: Jli ...
- 基于django的个人博客网站建立(三)
基于django的个人博客网站建立(三) 前言 网站效果可点击这里访问 今天主要完成的是文章在页面的显示以及评论,留言 具体内容 首先我希望主页面是显示我的所有文章,于是在主页面的视图函数中返回了所有 ...
- 基于django的个人博客网站建立(二)
基于django的个人博客网站建立(二) 前言 网站效果可点击这里访问 今天主要完成后台管理员登录的状态以及关于文章在后台的处理 具体内容 首先接上一次内容,昨天只是完成了一个登录的跳转,其他信息并没 ...
- 基于django的个人博客网站建立(一)
基于django的个人博客网站建立(一) 前言 网站效果可点击这里访问 之前基于hexo和github page搭建过一个博客网页,后来由于换了个系统,感觉弄的有点麻烦也就没有再去管它了,最近偶然从网 ...
- 基于django的个人博客网站建立(七)
基于django的个人博客网站建立(七) 前言 网站效果可点击这里访问 这次在原来的基础上添加或修改一些小功能 具体内容 1.代码高亮 在原来的blog-details.html页面添加下面的代码: ...
- 基于django的个人博客网站建立(六)
基于django的个人博客网站建立(六) 前言 今天主要完成的是项目在腾讯云服务器上ubuntu16.04+django+mysql+uwsig+nginx的部署过程网站效果可点击这里访问 主要内容 ...
- 基于django的个人博客网站建立(五)
基于django的个人博客网站建立(五) 前言 网站效果可点击这里访问 之前鸽了两天,今天继续再写点 主要内容 今天加了个展示照片的功能,就叫他生活记录吧 先建表 class Record(model ...
随机推荐
- leetcode 46 全排列 (python)
给定一个没有重复数字的序列,返回其所有可能的全排列. 示例: 输入: [1,2,3]输出:[ [1,2,3], [1,3,2], [2,1,3], [2,3,1], [3,1,2], [3,2,1]] ...
- flex 强制垃圾回收
java和flash的垃圾回收都是一个比较热门的话题,今天我也用一个例子来测试下flash的强制垃圾回收.主要用到的而一个类是LocalConnection. 在Flash player的debug版 ...
- ios 无法安装xxx,请稍后再试
通过xcode可以用模拟机器运行工程,但是 打出包后: 真机安装提示 无法安装xxx,请稍后再试 已经信任了证书 问题原因:xcode配置的 运行手机上的操作系统太高了是 解决办法:deploymen ...
- 阶段1 语言基础+高级_1-3-Java语言高级_06-File类与IO流_06 Properties集合_3_Properties集合中的方法load
键值对文件,读取到集合中来使用 分隔符也可以用空格 读出来乱码
- 测开之路一百零二:jquery元素操作
jquery对元素操作,获取/替换文本(.text()).html(.html()).属性(.attr()).值(.val()) html代码 text() 根据标签获取文本值 同一个标签下筛选明细 ...
- Jmeter使用SSL(HTTPS协议)
Jmeter是apache一款开源.小巧的性能测试工具,平时测试web http协议经常使用,其实jmeter同样支持ssl.方法如下: 需要装有目标网站证书的密钥库,即testclient.keys ...
- [Web 前端] 007 css 常见的七种选择器
1. 标签选择器 影响范围大 建议尽量应用在层级选择器中 举例 <!-- body 体中的 div --> <div>box...</div> /* style 中 ...
- QToolButton设置icon的大小
项目中用到了QToolButton上使用图片. 如果在maindow中直接使用QToolButton,如: btnSimulate = new QToolButton; btnSimulate-> ...
- HDU_2007
/** *注意:输入的两个数字的大小并不确定 */ #include <iostream> #include <stdio.h> #include <string.h&g ...
- 《死磕 Elasticsearch 方法论》:普通程序员高效精进的 10 大狠招!(完整版)
原文:<死磕 Elasticsearch 方法论>:普通程序员高效精进的 10 大狠招!(完整版) 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链 ...