Abstract
繼續(xù)Python Django 博客開發(fā)系列凌外,這篇主要分享環(huán)境的搭建和基礎(chǔ)配置
Before Installation
- 在按照Django之前,強(qiáng)烈建議大家按照 python 切換pip 豆瓣源 把pip的源換了赎婚,實(shí)際測試豆瓣源安裝15秒完成刘绣,官網(wǎng)只能說so slow
- 建議大家參考Centos 下 pyenv 安裝 python 多版本 和 virtualenv純凈虛擬環(huán)境 配合來新增Python項(xiàng)目安裝
- 另外這里提供 自動(dòng)化安裝和配置腳本來 自動(dòng)化安裝pyenv+virtualenv ,記得要
source install_pyenv.sh
來執(zhí)行哦 - 腳本地址 https://github.com/opscolin/ShellScripts/blob/master/install_pyenv.sh 歡迎大家star
附自動(dòng)化安裝腳本部分截圖:
[root@i-pp837f3z ~]# source install_pyenv.sh
default install to ~/.pyenv
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: mirror.bit.edu.cn
* extras: mirror.bit.edu.cn
* updates: mirrors.btte.net
Package readline-6.2-9.el7.x86_64 already installed and latest version
Package 1:openssl-1.0.1e-60.el7_3.1.x86_64 already installed and latest version
Package bzip2-libs-1.0.6-13.el7.x86_64 already installed and latest version
... ...
... ...
Dependency Installed:
keyutils-libs-devel.x86_64 0:1.5.8-3.el7 krb5-devel.x86_64 0:1.14.1-27.el7_3 libcom_err-devel.x86_64 0:1.42.9-9.el7 libgnome-keyring.x86_64 0:3.8.0-3.el7 libkadm5.x86_64 0:1.14.1-27.el7_3
libselinux-devel.x86_64 0:2.5-6.el7 libsepol-devel.x86_64 0:2.5-6.el7 libverto-devel.x86_64 0:0.2.5-4.el7 ncurses-devel.x86_64 0:5.9-13.20130511.el7 pcre-devel.x86_64 0:8.32-15.el7_2.1
perl-Error.noarch 1:0.17020-2.el7 perl-Git.noarch 0:1.8.3.1-6.el7_2.1 perl-TermReadKey.x86_64 0:2.30-20.el7 rsync.x86_64 0:3.0.9-17.el7 zlib-devel.x86_64 0:1.2.7-17.el7
Complete!
Cloning into '/root/.pyenv'...
remote: Counting objects: 15365, done.
remote: Compressing objects: 100% (29/29), done.
remote: Total 15365 (delta 50), reused 63 (delta 43), pack-reused 15291
Receiving objects: 100% (15365/15365), 2.74 MiB | 1.32 MiB/s, done.
Resolving deltas: 100% (10511/10511), done.
Cloning into '/root/.pyenv/plugins/pyenv-virtualenv'...
remote: Counting objects: 1901, done.
remote: Total 1901 (delta 0), reused 0 (delta 0), pack-reused 1901
Receiving objects: 100% (1901/1901), 537.87 KiB | 255.00 KiB/s, done.
Resolving deltas: 100% (1305/1305), done.
安裝完成驗(yàn)證
[root@i-pp837f3z ~]# pyenv versions
* system (set by /root/.pyenv/version)
Install Django
這里安裝超級(jí)快挣输,因?yàn)槲覀兦袚Q了 pip
的 安裝源
[root@i-pp837f3z ~]# pip install django==1.11.4
Collecting django==1.11.4
Downloading https://pypi.doubanio.com/packages/fc/fb/01e0084061c50f1160c2db5565ff1c3d8d76f2a76f67cd282835ee64e04a/Django-1.11.4-py2.py3-none-any.whl (6.9MB)
100% |████████████████████████████████| 7.0MB 6.4MB/s
Collecting pytz (from django==1.11.4)
Downloading https://pypi.doubanio.com/packages/55/62/e7cd0e15b76062d298413f14bb4ec3cd8568a22d274427f9c3c7286969f4/pytz-2017.2-py2.py3-none-any.whl (484kB)
100% |████████████████████████████████| 491kB 3.9MB/s
Installing collected packages: pytz, django
Successfully installed django-1.11.4 pytz-2017.2
[root@i-pp837f3z ~]#
Verify Installation
[root@i-pp837f3z ~]# python
Python 2.7.5 (default, Nov 6 2016, 00:28:07)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-11)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import django
>>> django.__version__
'1.11.4'
>>>
Django 項(xiàng)目初始
創(chuàng)建項(xiàng)目
進(jìn)入到你的工程目錄下面去纬凤,然后開始我們的Django之旅
root@i-pp837f3z opt]# cd /opt/djangoproject/
[root@i-pp837f3z djangoproject]# pwd
/opt/djangoproject
[root@i-pp837f3z djangoproject]# django-admin.py startproject myblog
[root@i-pp837f3z djangoproject]# tree myblog/
myblog/
|-- manage.py
`-- myblog
|-- __init__.py
|-- settings.py
|-- urls.py
`-- wsgi.py
1 directory, 5 files
django-admin.py VS manage.py
-
django-admin.py
是Django項(xiàng)目的入口命令行管理工具集岳瞭,通過他可以創(chuàng)建我們的項(xiàng)目蜕便、同步數(shù)據(jù)庫、等等操作, 你可以
django-admin.py --help
查看全部用法 -
manage.py
和django-admin.py有相同的用處绢馍,不過額外的還有別的和項(xiàng)目特殊相關(guān)的。在創(chuàng)建每個(gè)項(xiàng)目的時(shí)候都會(huì)自動(dòng)生成一個(gè)
manage.py
文件肠套,它會(huì)把你的項(xiàng)目自動(dòng)加入到 sys.path中去等舰涌,具體可以參考:https://docs.djangoproject.com/en/1.11/ref/django-admin/
創(chuàng)建應(yīng)用
[root@i-pp837f3z myblog]# python manage.py startapp blog
[root@i-pp837f3z myblog]# tree .
.
|-- blog
| |-- admin.py
| |-- apps.py
| |-- __init__.py
| |-- migrations
| | `-- __init__.py
| |-- models.py
| |-- tests.py
| `-- views.py
|-- manage.py
`-- myblog
|-- __init__.py
|-- __init__.pyc
|-- settings.py
|-- settings.pyc
|-- urls.py
`-- wsgi.py
配置應(yīng)用
vim myblog/settings.py
把新增APP添加到INSTALLED_APPS
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'blog',
]
vim myblog/urls.py
新增關(guān)于 blog 應(yīng)用的URL解析
from django.conf.urls import url, include
from django.contrib import admin
urlpatterns = [
url(r'^blog/', include('blog.urls')),
url(r'^admin/', admin.site.urls),
]
這里現(xiàn)在blog應(yīng)用中新增一個(gè)index view
vim blog/views.py
# -*- coding: utf-8 -*-
from django.shortcuts import render
from django.http import HttpResponse
# Create your views here.
def index(request):
return HttpResponse('hello django blog')
然后在 blog 目錄下新增 urls.py 如下
vim blog/urls.py
from django.conf.urls import url
from . import views
urlpatterns = [
url(r'^$', views.index, name='index'),
]
在上面這些初始化配置完成之后,我們只可以啟動(dòng)服務(wù)看看效果
啟動(dòng)服務(wù)
python manage.py runserver 0.0.0.0:8080
這里的 0.0.0.0
代表任何主機(jī)可訪問你稚, 8002
是對(duì)外提供服務(wù)的端口
然后我們?cè)跒g覽器中輸入 192.168.88.2:8080
查看效果
出現(xiàn)這個(gè)需要們?cè)?myblog/settings.py 中修改配置
ALLOWED_HOSTS = []
為 ALLOWED_HOSTS = [*]
或者 ALLOWED_HOSTS = ['192.168.88.2']
再次刷新顯示:
出現(xiàn) hello django blog
證明我們基本環(huán)境已經(jīng)部署oK ...