欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

创建django项目注意事项

程序员文章站 2022-07-14 20:41:22
...

1.创建django项目后,为了让uwsgi能够使用,必须将wsgi文件改为如下。其中,每个项目只需要把django_oa改掉

import os, sys
from django.core.wsgi import get_wsgi_application

# 1.增加系统环境变量,使uwsgi能够找到配置文件
os.environ['DJANGO_SETTINGS_MODULE'] = 'django_oa.settings'

# 2.在django项目对python模块的搜索路径中,插入项目路径
now_path = os.path.abspath(__file__)
first_dir = os.path.dirname(now_path)
PROJECT_DIR = os.path.dirname(first_dir)
sys.path.insert(0, PROJECT_DIR)

# 3.得到应用,使得settings文件能够定位到这里
application = get_wsgi_application()

2.在项目的配置文件夹中创建ini文件,文件名要有特点,每个项目需要更改前面3行内容,建议相对于nginx端口号,依次增加100。内容如下:

# 既然用了python,能用ini当然不要再用xml了

# 这一行配置头一定要加,不然无法识别配置内容
[uwsgi]
http = :8100
socket = :8200
chdir = /home/ubuntu/django_project/django_oa/django_oa
module = wsgi

# 这个属性很NB,能够使wsgi托管到后台,runserver就做不到!
daemonize = circumstance.log

# 这个太重要了,木有这个那每次改代码只能重启了,而且重启还成功率有限
py-autoreload = 1

3.settings.py文件,建议更改7个地方:

# 在建立好项目后,一定要改这个,不然外网无法使用!
ALLOWED_HOSTS = ['*']

# Application definition
INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'bonus',
]

MIDDLEWARE = [
    'django.middleware.security.SecurityMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.common.CommonMiddleware',
    # 'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
]

# 强制在项目中每个链接必须写全,不自动加斜杠(不影响手输网址)
APPEND_SLASH = False

# session过期时间
SESSION_COOKIE_AGE = 7200

# 预计可以实现每次触发方法就刷新session
SESSION_SAVE_EVERY_REQUEST = True

# 浏览器关闭后自动清除session
SESSION_EXPIRE_AT_BROWSER_CLOSE = True

4.把项目发布到服务器上后,先开启uwsgi,然后去改nginx配置。如果需要复制上面一段文字,可以在xshell中用鼠标选中复制。配置完nginx之后,一定要记得输入sudo nginx -s reload,重启nginx

5.可以把整个database创建在实体类中,但要注意,一来每张表必须有主键,二来每张表都不能有中文字段

python manage.py inspectdb > project/models.py