前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Django Initialization

Django Initialization

原创
作者头像
vanguard
修改2021-01-11 17:23:21
5100
修改2021-01-11 17:23:21
举报
文章被收录于专栏:vanguard

more installation and initialization

1. Install or upgrade by python pip

代码语言:shell
复制
## python > 3.6 && django > 3.x (latest)
# python -m pip install --upgrade pip setuptools
# python -m pip install django
## -U = --upgrade
pip install -U django

2. Install or upgrade in source code

代码语言:shell
复制
# Download
# chmod 777 xxx # mv a b
wget https://codeload.github.com/django/django/zip/master
# Unzip
unzip master
# Install
# pip uninstall django
# ps -ef | grep django # kill -9 xxx
cd django-master
# sudo rm -rf ./*
# sudo python setup.py install
python setup.py install

Source Code review - setup.py

python version check >> existing installation delete ? >> distutils/setuptools >> legacy installation (/usr/local)

代码语言:python
代码运行次数:0
复制
# https://github.com/django/django
import os
import sys
from distutils.sysconfig import get_python_lib
from setuptools import setup

# sys.version_info(major=3, minor=8, micro=6, releaselevel='final', serial=0)
CURRENT_PYTHON = sys.version_info[:2]
# (3, 8)
REQUIRED_PYTHON = (3, 6)
# (3, 6)

# This check and everything above must remain compatible with Python 2.7.
if CURRENT_PYTHON < REQUIRED_PYTHON:
    sys.stderr.write("""
==========================
Unsupported Python version
==========================

This version of Django requires Python {}.{}, but you're trying to
install it on Python {}.{}.

This may be because you are using a version of pip that doesn't
understand the python_requires classifier. Make sure you
have pip >= 9.0 and setuptools >= 24.2, then try again:

    $ python -m pip install --upgrade pip setuptools
    $ python -m pip install django

This will install the latest version of Django which works on your
version of Python. If you can't upgrade your pip (or Python), request
an older version of Django:

    $ python -m pip install "django<2"
""".format(*(REQUIRED_PYTHON + CURRENT_PYTHON)))
    sys.exit(1)

# Warn if we are installing over top of an existing installation. 
# This can cause issues where files that were deleted from 
# a more recent Django are still present in site-packages. See #18115.
overlay_warning = False
if "install" in sys.argv:
    lib_paths = [get_python_lib()]
    if lib_paths[0].startswith("/usr/lib/"):
        # We have to try also with an explicit prefix of /usr/local in order to
        # catch Debian's custom user site-packages directory.
        lib_paths.append(get_python_lib(prefix="/usr/local"))
    for lib_path in lib_paths:
        existing_path = os.path.abspath(os.path.join(lib_path, "django"))
        if os.path.exists(existing_path):
            # We note the need for the warning here, but present it after the
            # command is run, so it's more likely to be seen.
            overlay_warning = True
            break

setup()

if overlay_warning: sys.stderr.write("""

========
WARNING!
========

You have just installed Django over top of an existing
installation, without removing it first. Because of this,
your install may now include extraneous files from a
previous version that have since been removed from
Django. This is known to cause a variety of problems. You
should manually remove the

%(existing_path)s

directory and re-install Django.

""" % {"existing_path": existing_path})

3. runtime initial

simple inintial

代码语言:shell
复制
Django-admin startproject PRJ_NAME
Python manage.py startapp APP_NAME
## settings.py -> installed app + allow ip [*]
## development of models.py url.py views.py admin.py

start.sh

jump to same path >> remove existing >> build/rebuild django >> runserver

代码语言:shell
复制
#!/bin/bash
# rebuild=false
rebuild=true
cd "$(dirname "$0")"
if $rebuild; then
# clean
rm -f ./nohup.out
rm -f ./db.sqlite3
rm -rf ./*/__pycache__/
rm -rf ./*/migrations/
# rebuild
python3 ./manage.py migrate
python3 ./manage.py makemigrations media
python3 ./manage.py makemigrations source
python3 ./manage.py makemigrations sports
python3 ./manage.py migrate
python3 ./manage.py createsuperuser --username hello --email xxx@xxx.com
fi
# runtime
python3 manage.py runserver 0.0.0.0:8080

final deployement

代码语言:shell
复制
# admin user interaction required
# start.sh rebuild = false
nohup ./start.sh >> hello.log &
open http://localhost:8080/
# ps -ef | grep python3

# hello world in linux and mac

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档