Django
一 安装
1.安装python3.5
# cd /usr/local/src/Python-3.5.0 # ./configure --prefix=/usr/local/python3.5/ # make && make install
python上下翻命令 需要安装rlwrap
alias python3='rlwrap python3'
2. 安装Django
下载安装包Django-1.8.8.tar.gz
# cd /usr/local/src/Django-1.8.8 # python3 setup.py install
二 配置
创建第一个项目
# mkdir /django
# cd /django # django-admin startproject mysite
# cd mysite
# tree
.
|-- mysite
| |-- __init__.py
| |-- settings.py
| |-- urls.py
| `-- wsgi.py
`-- manage.py
目录说明:
- mysite: 项目的容器。
- manage.py: 一个实用的命令行工具,可让你以各种方式与该 Django 项目进行交互。
- mysite/__init__.py: 一个空文件,告诉 Python 该目录是一个 Python 包。
- mysite/settings.py: 该 Django 项目的设置/配置。
- mysite/urls.py: 该 Django 项目的 URL 声明; 一份由 Django 驱动的网站"目录"。
- mysite/wsgi.py: 一个 WSGI 兼容的 Web 服务器的入口,以便运行你的项目。
配置数据库连接
vim /django/mysite/mysite/settings.py
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'HOST': '192.168.1.111', 'USER': 'root', 'PASSWORD': 'root', 'NAME': 'pydb', } }
创建app
# cd /django/mysite/mysite/
# python3 manage.py startapp blog
在/django/mysite/mysite/settings.py中添加该app
INSTALLED_APPS = ( 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'blog', )
多个app的情况下配置url
在project总体的urls.py (/django/mysite/mysite/urls.py) 中引入每个app的url配置文件,不同的url路径在各自的配置文件中分别配置
/django/mysite/mysite/urls.py
from django.conf.urls import include, url from django.contrib import admin import blog import polls urlpatterns = [ url(r'^admin/', include(admin.site.urls)), url(r'^blog/', include('blog.urls')), url(r'^polls/', include('polls.urls')), ]
/django/mysite/blog/urls.py
from django.conf.urls import include, url from django.contrib import admin from blog import views urlpatterns = [ url(r'^hello/', views.hello), ]
参考网页 https://blog.csdn.net/chenshaopeng1234/article/details/72869130
三 启动Django
# cd /django/mysite/ # python3 manage.py runserver 192.168.1.31:8000
启动后可以在通过浏览器访问 http://192.168.1.31:8000
四 uwsgi + nginx
1. 安装nginx
2. 安装uwsgi
# pip install uwsgi
在目录/django/mysite/mysite/ 下创建一个配置文件uwsgi.ini
# cat uwsgi.ini [uwsgi] # 配置服务器的监听ip和端口,让uWSGI作为nginx的支持服务器的话,设置socke就行;如果要让uWSGI作为单独的web-server则用http #http=192.168.1.31:8000 socket=127.0.0.1:8000 #project的根目录 chdir=/django/mysite wsgi-file=mysite/wsgi.py master=True processs=2 daemonize=/data/logs/wsgi.log
启动uwsgi
# uwsgi --ini uwsgi.ini
修改nginx配置
location / { include uwsgi_params; uwsgi_connect_timeout 30; uwsgi_pass 127.0.0.1:8000; } location /static { alias /django/mysite/all_static; }
启动nginx,此时已经可以访问了
但是登陆django的admin后台管理界面,网页的静态文件无法找到。
那是因为我们在前面设置nginx的静态文件目录时,static目录下一般只是我们项目应用开发中自己的静态文件,但是django后台admin用到的静态文件并不在这,所以找不到。所以我们需要把所有的静态文件打包放在一个目录下。
首先在settings.py中加入一条配置,指定所有静态文件的根目录
STATIC_ROOT = os.path.join(BASE_DIR,'all_static')
通过命令将静态文件同步到设置好的根目录下,该操作会覆盖存在的文件
# cd /django/mysite/
# python3 manage.py collectstatic