└─shiyanlou_project # 项目根路径 │ .gitignore # 提交git仓库时,不提交的文件必须要在这里进行标注 │ README.en.md # 英文(项目介绍) │ README.md # 中文项目简介 │ requirements.txt # django项目安装文件 │ ├─celery_task # 用来存放celery相关文件(以便分布式部署) │ __init__.py │ ├─db # 数据库相关:1.数据库初始化sql脚本; 2.数据库维护脚本,清 理,备份脚本 ├─scrips # 脚本目录:1.定时任务脚本;2.页面静态化脚本;处理项目脚本 ├─logs # 存放日志 ├─packages # 外部包,原始的,未配置的:1.七牛云sdk;2.阿里云短信; └─uwsgi_conf # uwsgi配置,日志,pid │ │ └─syl # 真正的django项目(代码)django-admin startproject 项目名 │ apps (python包) # Django各种app模块 │ libs (python包) # 七牛云sdk+配置(外部下载) │ utils (python包) # 小工具,常用函数(自己写的) │ static │ templates │ syl(项目配置) │ manager.py
2.1 创建文件夹
注意:(包可以导入,文件夹不能导入)
2.5 新建文件夹
db,logs,scrips,packages,uwsgi_conf文件夹
2.7 创建项目
2.9 添加配置问题
2.9.1 配置添加
3.1 数据库配置
python ../manage.py startapp user # 创建user模型
INSTALLED_APPS = [ \'user.apps.UserConfig\', ] # 注:pycharm无法联想,需要把apps文件夹设置为源根
urlpatterns = [ path(\'user/\', include(\'user.urls\')), ]
# 把apps目录插入,到系统包搜索路径第一个位置中 sys.path.insert(0,os.path.join(BASE_DIR,\'apps\'))
from django.urls import path urlpatterns = [ ]
from django.db import models from django.contrib.auth.models import AbstractUser # Create your models here. class User(AbstractUser): phone = models.CharField(\'手机号\',max_length=20) img = models.ImageField(upload_to=\'user\',null=True) nick_name = models.CharField(\'昵称\',max_length=20) address = models.CharField(\'地址\',max_length=255) class Meta: db_table = \'tb_user\'
# 注册自己的用户模型类: 应用名.模型名,指定我们重写的User表进行身份验证 AUTH_USER_MODEL = \'user.User\'
\'\'\'1.创建mysql数据库\'\'\' mysql> create database syldb charset utf8; \'\'\'2.在syl/settings.py中配置mysql\'\'\' DATABASES = { \'default\': { \'ENGINE\': \'django.db.backends.mysql\', \'NAME\': \'syldb\', # 指定数据库名称:MyCRM \'USER\': \'root\', \'PASSWORD\': \'1\', \'HOST\': \'127.0.0.1\', \'PORT\': \'3306\', } }
python manager.py makemigrations
python manager.py migrate
遭遇问题: File "/root/.virtualenvs/syl/lib/python3.6/site-packages/django/db/backends/mysql/operations.py", line 146, in last_executed_query query = query.decode(errors=\'replace\') AttributeError: \'str\' object has no attribute \'decode\' 解决问题: /root/.virtualenvs/syl/lib/python3.6/site-packages/django/db/backends/mysql/operations.py中 if query is not None: query = query.encode(\'utf8\').decode(errors=\'replace\') return query