1. 程式人生 > 其它 >名稱空間與虛擬環境

名稱空間與虛擬環境

名稱空間與虛擬環境

名稱空間

  當多個應用出現相同的別名時,正常情況下的反向解析是沒有辦法自動識別字首的,這種情況下就需要用到名稱空間

  總路由

urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^app01/', include('app01.urls', namespace='app01')),
    url(r'^app02/', include('app02.urls', namespace='app02'))

  app01

urlpatterns = [
    url(r'^reg/', views.reg, name='reg')
from django.shortcuts import reverse
def reg(request):
    print(reverse('app01:reg'))
    return HttpResponse('app01:reg')

  app02

urlpatterns = [
    url(r'^reg/', views.reg, name='reg')
]
from django.shortcuts import render, HttpResponse,reverse

# Create your views here.
def reg(request):
    print(reverse('app02:reg'))
    return HttpResponse('app02:reg')

  前端

{% url 'app01:reg' %}
{% url 'app02:reg' %}

  如何避免這種情況發生

    其實只要保證名字不衝突,就沒有必要使用名稱空間。

    一般情況下,有多個app的時候我們在起別名的時候會加上app的字首,這樣的話就能夠確保多個app之間名字不衝突的問題

偽靜態

  就是將一個動態網頁偽裝成靜態網頁

  偽裝的目的在於增大本網站的eso查詢力度,並且增加搜尋引擎收藏本網站的概率

  搜尋引擎本質上就是巨大的爬蟲程式

  實現這種效果只需在urls檔案後面新增html即可

urlpatterns = [
    url(r'^reg.html', views.reg, name='reg')
]

虛擬環境

  每建立一個新的虛擬環境就類似於重新下載了一個純淨的python直譯器

  虛擬環境不要建立太多,是需要消耗硬碟空間的

  虛擬環境建立

 有venv表示當前使用的是虛擬環境

END