用到的命令

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 我的博客 (慕课网视频)笔记的更多相关文章

  1. Django:(博客系统)使用使用mysql数据->后台管理tag/post/category的配置

    Django后台一般是不需要人为的去开发的,因为django已经通过配置实现哪些模块是后台需要管理,如何排序,列表展示哪些列,列显示名称,是否为空(默认值),过滤条件,分页页数,列表中哪些项可编辑等等 ...

  2. Django快速搭建博客系统

    Django快速搭建博客系统 一.开发环境 Windows 7(64bit) python 3.6   https://www.python.org/ Django 2.0  https://www. ...

  3. Django搭建简易博客

    Django简易博客,主要实现了以下功能 连接数据库 创建超级用户与后台管理 利用django-admin-bootstrap美化界面 template,view与动态URL 多说评论功能 Markd ...

  4. 个人博客添加网易云音乐Flash插件

    博客底部添加网易云音乐播放插件 歌单或者歌曲外链可从音乐界面"生成外链播放器"中得到,选择Flash播放插件即可 footer.html文件增加 实现效果: 历史精选文章: Jli ...

  5. 基于django的个人博客网站建立(三)

    基于django的个人博客网站建立(三) 前言 网站效果可点击这里访问 今天主要完成的是文章在页面的显示以及评论,留言 具体内容 首先我希望主页面是显示我的所有文章,于是在主页面的视图函数中返回了所有 ...

  6. 基于django的个人博客网站建立(二)

    基于django的个人博客网站建立(二) 前言 网站效果可点击这里访问 今天主要完成后台管理员登录的状态以及关于文章在后台的处理 具体内容 首先接上一次内容,昨天只是完成了一个登录的跳转,其他信息并没 ...

  7. 基于django的个人博客网站建立(一)

    基于django的个人博客网站建立(一) 前言 网站效果可点击这里访问 之前基于hexo和github page搭建过一个博客网页,后来由于换了个系统,感觉弄的有点麻烦也就没有再去管它了,最近偶然从网 ...

  8. 基于django的个人博客网站建立(七)

    基于django的个人博客网站建立(七) 前言 网站效果可点击这里访问 这次在原来的基础上添加或修改一些小功能 具体内容 1.代码高亮 在原来的blog-details.html页面添加下面的代码: ...

  9. 基于django的个人博客网站建立(六)

    基于django的个人博客网站建立(六) 前言 今天主要完成的是项目在腾讯云服务器上ubuntu16.04+django+mysql+uwsig+nginx的部署过程网站效果可点击这里访问 主要内容 ...

  10. 基于django的个人博客网站建立(五)

    基于django的个人博客网站建立(五) 前言 网站效果可点击这里访问 之前鸽了两天,今天继续再写点 主要内容 今天加了个展示照片的功能,就叫他生活记录吧 先建表 class Record(model ...

随机推荐

  1. LongAccumulator 源码分析

    LongAccumulator LongAccumulator 能解决什么问题?什么时候使用 LongAccumulator? 1)LongAccumulator 的逻辑和 LongAdder 基本类 ...

  2. 快速入门分布式消息队列之 RabbitMQ(1)

    目录 目录 前言 简介 安装 RabbitMQ 基本对象概念 Message 消息 Producer 生产者 Consumer 消费者 Queue 队列 Exchange 交换机 Binding 绑定 ...

  3. 阶段1 语言基础+高级_1-3-Java语言高级_06-File类与IO流_07 缓冲流_1_缓冲流的原理

    一个字节一个字节的读取,先读取到a,a给到os操作系统.os再给JVM,.jVM再把a给java程序 读完a再读取b.这样一层层的返回,效率低下 一次读取,缓冲区数组返回来.

  4. 阶段1 语言基础+高级_1-3-Java语言高级_06-File类与IO流_05 IO字符流_4字符输出流的基本使用_写出单个字符

    写完之后不刷新,则没有数据.数据只是写如到了内存缓冲区中 必须要调用flush方法,把数据刷新过去 close关闭的时候也会把数据刷新到文件中.这里把flush注释了也是可以的

  5. django-xadmin常用内容记录

    自定义菜单名称: 1 修改app下的 apps.py文件 添加 class OperationConfig(AppConfig): name = 'operation' verbose_name = ...

  6. vue组件父子间通信之综合练习--假的聊天室

    <!doctype html> <html> <head> <meta charset="UTF-8"> <title> ...

  7. 常用js方法封装使用

    // 冒泡排序 export function bubbleSort(arr) { let i = arr.length - 1; while (i > 0) { let maxIndex = ...

  8. [Vim 填坑] 01 Vim 中替换与注释的补充

    目录 1. print( 坑的信息 ) 2. 开始填坑 (1) :n1,n2s/old/new/gc 的后续命令 ^E ^Y (2) 利用"V-可视"模式进行多行注释 1. pri ...

  9. Java多态性应用——多态数组、多态参数

    多态数组: Person[] person = {new Person("张三", 32), new Student("李四", 21, 120, 90.0), ...

  10. github廖雪峰git

    gitHub地址: https://github.com/DickyQie/Tool-use/tree/git-learning-document