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 ...
随机推荐
- MongoDB学习【三】—MongoDB数据库增删改查
一.数据库的增删查 # 增加 use db # 有则切换,无则新 增 # 查看 show dbs # 查看所有数据库 db # 查看当前库 # 删除 db.dropDatabase() # 不会就用h ...
- 阶段1 语言基础+高级_1-3-Java语言高级_06-File类与IO流_01 File类_6_File类判断功能的方法
exists true表示路径是存在的 不存在的路径 不存在的路径返回false 相对路径的文件的判断 ‘ 不存在的相对路径 isDirectory和isFile 路径是不存在的 用这个方法之前最好先 ...
- sort_values()和sort_index()函数
sort_values() 1 可用于对dateframe的多列同时进行排序 True是升序,False是降序,默认是升序 kk.sort_values(by=['listing_id','order ...
- nw打包vue项目 安装包
接着上篇nw打包vue项目exe中: copy /b nw.exe+dome.nw dome.exe 出现了dome.exe文件之后,要是打算打包成为安装包,网上推荐的是Inno Setup Comp ...
- 编译的时候出现"/usr/bin/ld: cannot find -lz
编译的时候出现"/usr/bin/ld: cannot find -lz"错误,需要安装zlib-dev这个包,在线安装命令为:apt-get install zlib1g-dev ...
- 如何将.Net Core应用程序部署在Linux操作系统上运行
.Net Core简介 跨平台: 可以在 Windows.macOS 和 Linux 操作系统上运行. 跨体系结构保持一致: 在多个体系结构(包括 x64.x86 和 ARM)上以相同的行为运行代码. ...
- vsphere虚拟化之Active Directory域的创建(一)
1.搭建环境说明 本机是在Vmware Workstation 12 Pro虚拟软件下进行搭建的. 操作系统版本:Windows Server 2012 R2 简体中文企业版x64. 2.安装完win ...
- mysql5.7日志时间与系统时间不一致
在MySQL 5.7.2 新增了 log_timestamps 这个参数,该参数主要是控制 error log.genera log,等等记录日志的显示时间参数 且默认安装后error_log,slo ...
- Poj 3268 Silver cow party 迪杰斯特拉+反向矩阵
Silver cow party 迪杰斯特拉+反向 题意 有n个农场,编号1到n,每个农场都有一头牛.他们想要举行一个party,其他牛到要一个定好的农场中去.每个农场之间有路相连,但是这个路是单向的 ...
- P5444 [APIO2019]奇怪装置
传送门 考虑求出最小的循环节 $G$ 使得 $t,t+G$ 得到的数对是一样的 由 $y \equiv t \mod B$ ,得到 $G$ 一定是 $B$ 的倍数,设 $zB=G$,则 $t,t+zB ...