linux项目创建

1 初始化项目结构

└─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 linux 项目创建

2.1 创建文件夹

2.2 打开项目

2.3 删除 main.py

2.4 新建Readme.md

注意:(包可以导入,文件夹不能导入)

2.5 新建文件夹

db,logs,scrips,packages,uwsgi_conf文件夹

2.6 新建celery_task 包

2.7 创建项目

 

 

2.8 创建三个包

apps,libs,utils

2.9 添加配置问题

2.9.1 配置添加

2.9.2 点击创建配置

2.10 配置解析器

2.11 语言和框架

2.12 运行成功

3 数据库

3.1 数据库配置

3.1.1 创建用户模型user
python ../manage.py startapp user # 创建user模型
3.1.2 在settings.py中注册模型
INSTALLED_APPS = [ 
    'user.apps.UserConfig', 
]
# 注:pycharm无法联想,需要把apps文件夹设置为源根
3.1.3 syl/urls.py添加主路由
urlpatterns = [ 
    path('user/', include('user.urls')), 
]
3.1.4 syl/settings.py中添加apps路径
# 把apps目录插入,到系统包搜索路径第一个位置中 
sys.path.insert(0,os.path.join(BASE_DIR,'apps'))
3.1.5 创建 user/urls.py子路由文件
from django.urls import path 
urlpatterns = [ 

]

3.2 数据库迁移

3.2.1 user/models.py创建模型:从写django user表
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'
3.2.2 syl/settings.py中注册自己的用户模型类
# 注册自己的用户模型类: 应用名.模型名,指定我们重写的User表进行身份验证 
AUTH_USER_MODEL = 'user.User'
3.2.3 配置mysql
'''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', 
     } 
}
3.2.4 生成表
python manager.py makemigrations 
python manager.py migrate

3.3 数据库问题

遭遇问题: 
    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
原文地址:https://www.cnblogs.com/mapel1594184/p/13881367.html