2015-06-04 26 views
7

Tôi có một ứng dụng django được lưu trữ trên pyhtonanywhere. Ứng dụng nằm ở username.pythonanywhere.com/MyApp. Tôi muốn phân phối trang html tĩnh tại username.pythonanywhere.com. Điều này có thể không? Về cơ bản, nó sẽ phục vụ như một chỉ mục liên kết đến /MyApp, /MyApp2 và các ứng dụng khác trong tương lai. Tôi không thể tìm thấy bất kỳ thông tin nào về cách thực hiện việc này, nhưng tôi cho rằng tôi phải sửa đổi mysite/mysite/urls.py khi điều hướng đến thư mục gốc hiện cung cấp cho tôi 404 thông báo về việc không tìm thấy kết quả phù hợp trong url.Có thể phục vụ trang html tĩnh ở gốc của dự án django không?

urlpatterns = [ 
     url(r'^/$', ???), 
     url(r'^admin/', include(admin.site.urls)), 
     url(r'^MyApp/', indluce('MyApp.urls')). 
] 

Trước đây là dự đoán tốt nhất của tôi (một điều xấu tôi biết). Điều đó nên (sửa tôi nếu tôi sai) khớp với URL gốc, nhưng tôi không biết làm thế nào để nói "hey django chỉ cần tìm một tập tin tĩnh", hoặc nơi tĩnh html nên sống, hoặc làm thế nào để nói với django nơi nó cuộc sống.

Cố gắng không cắt đầu của tôi. Tôi là thương hiệu mới với django.

P.S. Tôi đang sử dụng django 1.8 trong virtualenv trên PA

Trả lời

9

Tất nhiên bạn có thể. Trong trường hợp tôi chỉ cần hiển thị mẫu, tôi sử dụng TemplateView. Ví dụ:

url(r'^$', TemplateView.as_view(template_name='your_template.html')) 

Tôi thường đặt hàng các mẫu URL của tôi từ nhất cụ thể để nhất cụ thể để tránh các trận đấu bất ngờ:

from django.views.generic import TemplateView 

urlpatterns = [ 
    url(r'^admin/', include(admin.site.urls)), 
    url(r'^MyApp/', include('MyApp.urls')), 
    url(r'^$', TemplateView.as_view(template_name='your_template.html')), 
] 

Theo như nơi Django tìm kiếm mẫu, nó tùy thuộc vào bạn cấu hình để nói cho Django biết nơi cần tìm: https://docs.djangoproject.com/en/1.8/topics/templates/#configuration

+0

và tệp html tồn tại trong 'mysite/mysite/templates /'? – thedarklord47

+1

Nó sống ở bất cứ nơi nào bạn đã chỉ định trong giá trị 'DIRS' trong cấu hình, đây là danh sách các đường dẫn thư mục. – Brandon

+0

ah không thấy bit cuối cùng với liên kết doc. cảm ơn ngài! – thedarklord47

3

Trên PythonTất cả mọi nơi, bạn có thể sử dụng cơ sở tệp tĩnh của ứng dụng web để phân phát tĩnh trước khi đến Django:

Đặt tệp có tên index.html trong một thư mục rồi trỏ một mục nhập tệp tĩnh vào thư mục đó. Nếu URL tệp tĩnh là/và thư mục là URL có tệp html trong đó, tệp sẽ được phân phối tại /.

Lưu ý rằng bạn không muốn thư mục ở trên bất kỳ mã nào hoặc bạn sẽ hiển thị mã của mình dưới dạng tệp tĩnh tức là bạn không muốn sử dụng thư mục/anywhere/blah nếu mã của bạn/anywhere/blah/code, bạn sẽ muốn đặt nó vào/anywhere/no_code_here

Các vấn đề liên quan