python---django初步瞭解以及安裝(包括Django網頁首次沒法訪問的緣由及解決方法,以及在linux服務器上佈置沒法啓動的緣由)

pip install Django

相關網站資源:html

Python下有許多款不一樣的 Web 框架。Django是重量級選手中最有表明性的一位。許多成功的網站和APP都基於Django。python

Django是一個開放源代碼的Web應用框架,由Python寫成。linux

Django採用了MVC的軟件設計模式,即模型M,視圖V和控制器C。shell

Django安裝以及下載手冊,注意版本對應,安裝後最後將Django安裝路徑添加到環境變量中,方便使用數據庫

 

1.開始建立項目:django

django-admin.py startproject HelloWorld(這是項目名)

如果不成功,查看Django路徑下文件設計模式

            98,194 chardetect.exe
            98,236 django-admin.exe
               182 django-admin.py
            98,203 easy_install-3.5.exe
            98,203 easy_install.exe
            98,175 pip.exe
            98,175 pip3.5.exe
            98,175 pip3.exe

能夠看見django-admin.exe瀏覽器

因此能夠直接使用exe文件來建立項目服務器

django-admin startproject HelloWorld(這是項目名)

便可成功cookie

查看文件夾HelloWorld  ---項目的容器

manage.py       --Django項目裏面的工具,經過它能夠調用django shell和數據庫等
HelloWorld:       --文件夾
    __init__.py    --一個空文件,告訴 Python 該目錄是一個 Python 包
    settings.py    --包含了項目的默認設置,包括數據庫信息,調試標誌以及其餘一些工做的變量。
    urls.py      --該 Django 項目的 URL 聲明; 負責把URL模式映射到應用程序
    wsgi.py      --一個 WSGI 兼容的 Web 服務器的入口,以便運行你的項目

建立應用app(加入HelloWorld目錄項目容器)真正網站中應用不止一個,像支付,聊天等多個應用在同一個項目

python manage.py startapp blog

發如今項目容器中多了blog文件夾,查看目錄

./blog:
total 5
-rwxrwx---+ 1 Administrators None  0 Mar 20 23:20 __init__.py
-rwxrwx---+ 1 Administrators None 66 Mar 20 23:20 admin.py
-rwxrwx---+ 1 Administrators None 88 Mar 20 23:20 apps.py
drwxrwx---+ 1 Administrators None  0 Mar 20 23:20 migrations
-rwxrwx---+ 1 Administrators None 60 Mar 20 23:20 models.py
-rwxrwx---+ 1 Administrators None 63 Mar 20 23:20 tests.py
-rwxrwx---+ 1 Administrators None 66 Mar 20 23:20 views.py

啓動項目python manage.py runserver 8080出錯

File "C:\Users\Administrator\AppData\Local\Programs\Python\Python35\lib\wsgiref\simple_server.py", line 36, in close
    self.status.split(' ',1)[0], self.bytes_sent
AttributeError: 'NoneType' object has no attribute 'split'

解決方案:

在通過了一下子的排查和網上資料的查找,發現Django對於python3以上並非多麼友好,因而就像在python2.7下使用,

奈何原來安裝的python2.7版本中並不自帶pip,想着單獨安裝pip,網上找了一堆方案...,最後決定安裝python2.7.10吧,這款版本自帶pip

開始卸載原有python2.7,在個人電腦,控制面板中能夠找到python2.7,進行卸載。

開始下載python2.7.10並安裝

安裝之後,修改環境變量,使用pip命令安裝Django

pip install django==1.8

刪除原來項目,從新建立Django項目

django-admin startproject HelloWorld
cd HelloWorld
python manage.py startapp blog
python manage.py runserver 8080

頁面開始訪問:注意如今瀏覽器默認https://127.0.0.1:8080

Django須要使用http://127.0.0.1:8080

成功訪問:

 另外:當初次使用post上傳數據時:

<form action="/userinfo/" method="post">
        <input name="name" type="text"/>
        <input name="age" type="text"/>
        <input type="submit">
    </form>

後臺:

user=[]
def userinfo(request):
    user1={}
    if request.method == "POST":
        user1['name']=request.POST.get("name",None)
        user1['age']=request.POST.get("age",None)
        user.append(user1)
    return render(request, "post1.html",{"user_list":user})

有可能會出現下面狀況:

Forbidden (403)
CSRF verification failed. Request aborted.
You are seeing this message because this site requires a CSRF cookie when submitting forms. This cookie is required for security reasons, to ensure that your browser is not being hijacked by third parties.

是因爲爲了防止跨站請求僞造的緣由,在settings文件中能夠修改:

MIDDLEWARE_CLASSES = (
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.common.CommonMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
    'django.middleware.security.SecurityMiddleware',
)

將綠色註釋便可 


 

將項目佈置到服務器上後,咱們須要去配置屬性

ALLOWED_HOSTS = ['*']  #設置容許全部的主機訪問

而後在啓動項目時

python manage.py runserver 0.0.0.0:8080  #也能夠起到同樣的效果

注意:在客戶機上訪問時,此時可能不能被正確的訪問,是由於咱們的ip被防火牆過濾掉了。

0.查看防火牆狀態

/etc/init.d/iptables status

1.設置防火牆:

[root@redhat2 crazyeye]# /sbin/iptables -I INPUT -p tcp --dport 8080 -j ACCEPT  #容許8080端口數據訪問
[root@redhat2 crazyeye]# /etc/init.d/iptables save  #保存配置
iptables: Saving firewall rules to /etc/sysconfig/iptables: [  OK  ]

2.臨時關閉防火牆

/etc/init.d/iptables stop 

3.永久關閉,不隨着咱們下一次重啓而啓動

chkconfig --level 35 iptables off
chkconfig iptables off

以後就能夠正常的訪問網站!!

推文:redhat linux/CentOS 6/7 如何關閉防火牆?

相關文章
相關標籤/搜索