django学习

本文详细介绍了Django的学习过程,包括环境配置、项目搭建使用cookiecutter和pipenv,需求分析中的用户个人中心功能,以及视图层ListView的使用和模型层中外键操作。特别讨论了Django的path转换器、数据库迁移和related_name的作用。
摘要由CSDN通过智能技术生成

环境配置

碰到的一些问题

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)的信息

单元测试

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值