文章目录
环境配置
碰到的一些问题
1.(1366, "Incorrect string value: '\xE7\x94\xA8\xE6\x88\xB7' for column 'name';解决办法:属于mysql数据编码的问题。修改mysql配置文件
sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
在 [mysqld] 下加上 character-set-server=utf8
重启mysql服务以后,进入mysql查询字符集,可以发现从默认的latin1改为了utf-8。>>>show VARIABLES LIKE 'character_set_%'
pip3
pip3安装
sudo apt-get install python3-pip
pip3换源
mkdir ~/.pip
vim ~/.pip/pip.conf
# 复制下面2行添加进去
[global]
index-url = https://mirrors.aliyun.com/pypi/simple
ubuntu
ubuntu换源
1.备份原来的源
sudo cp /etc/apt/sources.list /etc/apt/sources_init.list
2.更换源
sudo gedit /etc/apt/sources.list
删除原来的文件内容,这里是Ubuntu16.04使用的阿里源,将下面的源复制进去
deb http://mirrors.aliyun.com/ubuntu/ xenial main
deb-src http://mirrors.aliyun.com/ubuntu/ xenial main
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates main
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates main
deb http://mirrors.aliyun.com/ubuntu/ xenial universe
deb-src http://mirrors.aliyun.com/ubuntu/ xenial universe
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates universe
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates universe
deb http://mirrors.aliyun.com/ubuntu/ xenial-security main
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-security main
deb http://mirrors.aliyun.com/ubuntu/ xenial-security universe
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-security universe
3.更新
更新源
sudo apt-get update
复损坏的软件包,尝试卸载出错的包,重新安装正确版本的。
sudo apt-get -f install
更新软件
sudo apt-get upgrade
git
首先去github官网注册
第一步 找到设置KEY的地方
登入账户 - 点击右上角的个人头像 - 下拉菜单Settings - SSH and GPG keys,点击 New SSH key
第二步 利用Git Bash创建Key
复制并运行 rm -rf ~/.ssh/* 把现有的 ssh key 都删掉
运行 ssh-keygen -t rsa -b 4096 -C "2498596694@qq.com"
运行 cat ~/.ssh/id_rsa.pub,得到一串码,将其复制到第一步中的key处,点击提交
运行 ssh -T git@github.com
Note: 如果你看到 Permission denied (publickey). 就说明你失败了,请回到第 1 步重来,是的,回到最上面的第 1 步重来;如果你看到 Hi dingyuejin! You've successfully authenticated, but GitHub does not provide shell access. 就说明你成功了!
项目搭建
cookiecutter及pipenv
迅速搭建python项目模板的一个工具(cookiecutter),python虚拟环境及包管理工具(pipenv)
1.cookiecutter 的安装
pip3 install cookiecutter
2.cookiecutter 搭建django项目
cookiecutter https://github.com/pydanny/cookiecutter-django.git
或者
cookiecutter git@github.com/pydanny/cookiecutter-django.git
或者
cookiecutter cookiecutter-django (由于虚拟机git 下载太慢,我是把cookiecutter-django下载下来的)
根据提示填写项目名(yohui)及选择技术栈完成设置
3.进入项目目录
cd yohui
4.创建虚拟环境
pipenv --python 3.6
需求分析
1.用户个人中心
包括昵称、邮箱、头像、简介、职称、城市、个人链接、微博链接、知乎链接、Github链接、Linkdin链接,用户可以更新
视图层
ListView
类继承关系和类的属性和方法:http://ccbv.co.uk/projects/Django/2.2/django.views.generic.list/ListView/
常用属性:model (指定模型类),paginate_by(分页,每页显示几条记录),template_name(指定前端模板)
常用方法:get_context_data(添加额外的上下文内容)
通过命令可以查看ListView的继承关系:
>>> from django.views.generic import ListView
>>> ListView.__m
ListView.__module__ ListView.__mro__
>>> ListView.__mro__
(<class 'django.views.generic.list.ListView'>, <class 'django.views.generic.list.MultipleObjectTemplateResponseMixin'>, <class 'django.views.generic.base.TemplateResponseMixin'>, <class 'django.views.generic.list.BaseListView'>, <class 'django.views.generic.list.MultipleObjectMixin'>, <class 'django.views.generic.base.ContextMixin'>, <class 'django.views.generic.base.View'>, <class 'object'>)
知识点
path转换器
默认情况下,Django内置下面的路径转换器:
str:匹配任何非空字符串,但不含斜杠/,如果你没有专门指定转换器,那么这个是默认使用的;
int:匹配0和正整数,返回一个int类型
slug:可理解为注释、后缀、附属等概念,是url拖在最后的一部分解释性字符。该转换器匹配任何ASCII字符以及连接符和下划线,比如building-your-1st-django-site;
uuid:匹配一个uuid格式的对象。为了防止冲突,规定必须使用破折号,所有字母必须小写,例如075194d3-6885-417e-a8a8-6c931e272f00。返回一个UUID对象;
path:匹配任何非空字符串,重点是可以包含路径分隔符’/‘。这个转换器可以帮助你匹配整个url而不是一段一段的url字符串。要区分path转换器和path()方法。
模型层
知识点
操作命令
运行python manage.py makemigrations为改动创建迁移记录
运行python manage.py migrate,将操作同步到数据库
运行python manage.py sqlmigrate+app名+migrations下的文件名,来查看sql语句
Django外键(ForeignKey)操作以及related_name的作用
如上3个图所示:
related_name和_set实现的功能一样,通过主表(teacher)查询子表(student)的信息