docker部署 django+gunciorn部署 打包
1 使用gunicorn,无法加载static:
在urls.py,加上:
from django.contrib.staticfiles.urls import staticfiles_urlpatterns<br><br>末尾加上: |
urlpatterns += staticfiles_urlpatterns() |
from django.contrib import admin from django.urls import path,include from django.contrib.staticfiles.urls import staticfiles_urlpatterns app_name='car_app' urlpatterns = [ path('admin/', admin.site.urls), path(r'',include('car_app.urls',namespace='car_app')), # url(r'users/',include('users.urls',namespace='users')), # url(r'login/', views.LoginView.as_view()), # url(r'logins/', views.LoginView.as_view()), # url(r'get_trail_api/', views.get_trail_View.as_view()), # url(r'all_on_line/', views.AllOnLine.as_view()), # url(r'time_now/', views.TimeNowView.as_view()), # url(r'websocket_test/',views.websocket_test), ] urlpatterns += staticfiles_urlpatterns()
加载视频要参考这个:
# settings.py STATIC_URL = '/static/' STATIC_ROOT = os.path.join(BASE_DIR,"static") MEDIA_URL = "/media/" MEDIA_ROOT = os.path.join(BASE_DIR, "media") # urls.py urlpatterns = [ ... ] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
docker部分:
run_gunicorn.py:
与manage.py同级
主要是这个 'car_proj.settings',是找到项目的settings.py, car_proj是文件夹
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'car_proj.settings')
# app.py import os import sys from gevent import monkey monkey.patch_all() from gunicorn.app.base import BaseApplication from django.core.wsgi import get_wsgi_application os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'car_proj.settings') application = get_wsgi_application() class StandaloneApplication(BaseApplication): def __init__(self, application, options=None): self.options = options or {} self.application = application super().__init__() def load_config(self): config = {key: value for key, value in self.options.items() if key in self.cfg.settings and value is not None} for key, value in config.items(): self.cfg.set(key.lower(), value) def load(self): return self.application if __name__ == '__main__': options = { 'bind': '0.0.0.0:8000', 'workers': 4, 'worker_class': 'gevent' # 'static_root': '/static/' } StandaloneApplication(application, options).run()
1 打开网页,不要用https,要用http! http://129.226.209.207:8000/
2 允许 0.0.0.0:8000
ALLOWED_HOSTS = ['*']
3 py文件的import ,要新建一个文件夹 如tool,与manage.py同级 再去导入
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)