基础
@LTS长期支持
@django-admin startproject xxx
python manage.py runserver
python manage.py startapp xxx
makemigrations
migrate
@如何通过一个处理方式获取文章唯一标识
模型的objects是获取或操作模型的对象
article.objects.get(条件)
article.objects.all()
article.objects.filter(条件)
@总urls:app1(urls),app3(urls),app2(urls)
@定制admin后台
设置模型__str__
定制admin
@修改模型
修改模型要更新数据库
python manage.py makemigrations
python manage.py migrate
视频
@要做什么:
设计网站原型(业务流程、功能模块、前端布局、后端模型)
具体开发
测试
部署上线
@
ajax 异步
@简单构建思路
@apt install virtualenv(用清华的源?)
virtualenv --no-site-packages --python=python3.6 mysite_bili
source ~/xxx/bin/activate
#退出虚拟环境deactivate
虚拟环境中:
pip install django
django-admin startproject mysite_bilipj
python manage.py startapp blog
项目文件夹用pycharm打开,设置运行环境为之前创建的虚拟环境;
@博客分类选择:一篇博客一种分类
@一键导出和安装
pip freeze > requirements.txt
pip install -r requirements.txt
@常用的模版标签
循环 :for
条件 :if(可逻辑判断)、ifequal、ifnotequal
链接 :url
模版嵌套:block、extends、include
注释 :{# #}
@常用的过滤器
日期 :date
字数截取 :truncatechars、truncatechars_html、
truncatewords、 truncatewords_html
是否信任html:safe
长度 :length
https://docs.djangoproject.com/en/2.0/ref/templates/builtins/
第九篇
第35篇 部署——git
@概览
@看git篇,廖雪峰部分
第36篇 部署——mysql
@创建my.ini文件并配置??
@本地
settings里面配置database
创建数据库并配置专门用户账户
create database mysite_db default charset utf8mb4 default collate utf8mb4_unicode_ci;(指定默认字符集和排序规则)
create user 'lala'@'localhost' identified by 'lala123456';
grant all privileges on mysite_db.* to 'lala'@'localhost';
flush privileges
删除数据库drop database xxx
python manage.py migrate报错(KeyError: 'EMAIL_HOST_PASSWORD'),
settings是原数据库情况下导出原数据库数据
python manage.py dumpdata > data.json
导入mysql报错
use mysite_db;
show tables;
select * from django_content_type;
delete from django_content_type;
settings是mysql情况下数据导入mysql
python manage.py loaddata data.json
第37篇 部署——服务器
@两种系统
ASP用windows,安选性差,易用,性能弱
Linux系统
@登录服务器后
python+tab键,查看已经安装;
apt update;
apt-get install software-properties-common;安装软件库
add-apt-repository ppa:jonathonf/python-3.6;
apt-get update;
apt-get install python3.6;
python3 -V查看软连接默认的版本;
which python3;
cd 到bin目录;
rm python3;
ln -s python3.6 python3;
cd ~;??
pip+tab;
pip -V;
apt-get install python3-pip;
pip3 install --upgrade pip;
如果pip3找不到,去usr/bin,rm pip3,ln -s pip3.6 pip3(如果不行就重新登陆一下);
pip3 install virtualenv;
cd /;
virtualenv mysite_env;
cd mysite_env/;
source bin/activate;
python -V;
pip list;
apt-get install git;(配置邮箱,公钥)
cd 代码想存放的地方;
git clone xxx;
cat requirements;看一下,退出
pip install -r requirements;
去mysql官网找apt repository,找到no thanks,右键复制链接link;
cd 想存放数据库软件的地方;
wget link;
dpkg -i tab;
apt-get update;
apt-get install mysql-server;
根据第36篇配置数据库;
看到50分
@全局模板文件夹
settings -> templates -> dirs
@9.模板文件设置建议
app模版文件 -> app
project模版文件 -> project
@网页设计
导航栏(logo,网站名,导航),主题内容,尾注
@静态文件:
css,js,图片
@部署bootstrap
1、打开bootstrap网站 www.bootcss.com
2、下载bootstrap
3、引用bootstrap
4、开始使用
@上篇博客和按月分类
- filter筛选条件(对比当前博客获取前后博客)
等于:直接筛选
大于:__gt (greater than)
大于等于:__gte
小于:__lt (less than)
小于等于:__lte
包含:__contains (加i忽略大小写)
开头是:__startswith
结尾是:__endswith
其中之一:__in
范围:__range
- exclude排除条件
- 条件中的双下划
字段查询类型
外键拓展(以博客分类为例)
日期拓展(以月份分类为例)
支持链式查询:可以一直链接下去
@bootstrap的响应式设计
< 768px (手机)
>= 768px (平板)
>= 992px (小尺寸显示器)
>= 1200px (大尺寸显示器)
@基本结构
<div class="container">
<div class="row">
<div class="col-xx-*"></div>
<div class="col-xx-*"></div>
</div>
</div>
@django静态文件命名空间
为了避免同名冲突问题static/app/xxx.css
@分页
1.博客文章数较多 -> 全部加载过慢 -> 分页加载
2.快速添加博客(shell命令行模式添加博客1、python manage.py shell2、for循环执行新增博客代码)
3.模型新增对象
from blog.models import blog
blog = blog()
blog.title = "xxx“
…
blog.save()
4.分页器实现分页
@博客分类统计:使用annotate拓展查询字段
@第19篇
@
@实操码云
网站建仓
本地建仓(目录),把要打包的项目拖进目录,目录内git init;
提交到暂存区git add .
;
提交到本地仓 git commit -m "1.0.0";
创建远程库(为了让本地和远程不产生冲突,不要readme);
查看本地库的别名git remote -v;
添加远程库地址为别名origin:git remote add origin https://gitee.com/slwxyz/one_line_of_code.git;
推送到远程库git push origin master
@
第十篇 css美化
@13-1base.html
标签内增加类明作为css的标识
<div class="nav">
下面在网页body内增加<style type="text/css">
通过指定标签类名来渲染页面
div.nav a{
text-decoration:none;
color:#000;
}
div.nav a.logo{
display:inline-block;
}
div.nav {
background: #eee;
border-bottom: 1px solid #ccc;
padding:5px 10px;
text-decoration是下划线
color是字颜色
display:inline-block是显示为一行
border-bottom:1px solid 分割线,代替html里面的<hr> ,1像素宽,实体线
padding:上下边距和左右边距
全局渲染用
body{
margin:0;
padding:0;
}
外边距和内边距为0
@13-2home.html
<h3 style="
font-size: 222%;
position: absolute;
left:50%;
top: 50%;
transform:translate(-50%,-50%)">欢迎访问</h3>
以上实现字体放大并居中
@静态文件:css,js,图片
@css文件的引用
1.settings里面新增路径
STATICFILES_DIRS = [
os.path.join(BASE_DIR, 'static'),
]
2.
@bass.css
* {
margin:;
padding:;
}
div.nav {
background-color: #eee;
border-bottom: 1px solid #ccc;
padding: 10px;
}
div.nav a{
text-decoration: none;
color: #000;
padding: 5px 10px;
}
div.nav a.logo {
display: inline-block;
font-size: 120%;
}
第12篇
@10‘24’‘
第33篇 邮箱
@设置邮箱的作用
减少垃圾用户,提高安全性,推送信息
@