drf_simple_pro
Posted yijue-lu
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了drf_simple_pro相关的知识,希望对你有一定的参考价值。
准备
1.创建虚拟环境
mkvirtualenv drf_simple_pro
扩展
创建虚拟环境: mkvirtualenv 虚拟环境名称 创建虚拟环境(指定python版本): mkvirtualenv -p python3 虚拟环境名称 查看所有虚拟环境: workon+2次tab键 使用虚拟环境: workon 虚拟环境名称 退出虚拟环境: deactivate 删除虚拟环境(必须先退出虚拟环境内部才能删除当前虚拟环境): rmvirtualenv 虚拟环境名称 其他相关命令: 查看虚拟环境中安装的包: pip freeze 或者 pip list 收集当前环境中安装的包及其版本: pip freeze > requirements.txt 在部署项目的服务器中安装项目使用的模块: pip install -r requirements.txt
2.pip安装部件
以下安装如果发现速度过慢,可以在后面加上-i https://mirrors.aliyun.com/pypi/simple/
pip install django
pip install djangorestframework
3.创建项目
先进入存放项目的文件夹
django-admin startproject drf_simple_pro
使用 tree drf_simple_pro/ 查看项目目录
drf_simple_pro/
├── drf_simple_pro
│ ├── __init__.py
│ ├── settings.py
│ ├── urls.py
│ └── wsgi.py
└── manage.py
4.使用pycharm
1.打开
2.选择之前创建的虚拟环境
3.启动
成功效果:
5.调整目录
复制settings.py里的内容,删除此文件并创建settings文件夹,在里面建立dev.py和prop.py文件,将复制的内容粘贴到dev.py文件里,用作开发使用,上线时再配置使用prop.py
drf_simple_pro/ ├── docs/ # 项目相关资料保存目录 ├── logs/ # 项目运行时/开发时日志目录 ├── manage.py ├── luffy/ # 项目主应用,开发时的代码保存 │ ├── apps/ # 开发者的代码保存目录,以模块[子应用]为目录保存 │ ├── libs/ # 第三方类库的保存目录[第三方组件、模块] │ ├── settings/ │ ├── dev.py # 项目开发时的本地配置 │ ├── prop.py # 项目上线时的运行配置 │ ├── urls.py # 总路由 │ ├── utils/ # 多个模块[子应用]的公共函数类库[自己开发的组件] └── scripts/ # 保存项目运营时的脚本文件
由于更改了配置文件的位置及名称,所以要更改启动文件manage.py
6.数据库相关
1.创建数据库
create database drf_simple_pro default charset=utf8mb4;
2.为当前项目创建数据库用户[这个用户只能看到这个数据库]
create user drf_simple_pro identified by ‘123‘; #创建用户 grant all privileges on drf_simple_pro.* to ‘drf_simple_pro‘@‘%‘; # 为用户分配权限 flush privileges; #
3.配置数据库连接,修改settings/dev.py
4.安装
pip install Pymysql
5.
6.启动项目,解决两个问题
第一个,数据库版本检测导致的错误
解决方案:注释掉数据库的版本检测代码
第二个,数据库版本的默认编码导致,query返回的内容格式使用有误
解决方案:新增一行代码,把query查询结果转换格式为 bytes类型
登录功能
1.创建用户模块的子应用
先进入apps文件夹
python ../../manage.py startapp users
在settings.py文件中注册子应用
INSTALLED_APPS = [ ... ‘users‘, ]
2.创建自定义的用户模型类
在创建好的应用models.py中定义用户的用户模型类
from django.contrib.auth.models import AbstractUser from django.db import models # Create your models here. class User(AbstractUser): """自定义用户模型类""" mobile = models.CharField(max_length=11, unique=True, verbose_name="手机号") class Meta: db_table = "cus_users" verbose_name = "用户" verbose_name_plural = verbose_name
在配置文件dev.py中进行设置
# 告知django认证系统使用自定义模型类 AUTH_USER_MODEL = ‘users.User‘
以上是关于drf_simple_pro的主要内容,如果未能解决你的问题,请参考以下文章