最近几天,我一直在使用这个django应用程序,但是还没有找到使它运行的解决方案。我正在尝试将其部署在本地主机以及heroku上,但是由于此错误,它们都不起作用。
这是我尝试运行时收到的错误消息
python manage.py runserver
...
Watching for file changes with StatReloader
Exception in thread django-main-thread:
Traceback (most recent call last):
File "c:\users\gorma\appdata\local\programs\python\python36- 32\Lib\threading.py", line 916, in _bootstrap_inner
self.run()
File "c:\users\gorma\appdata\local\programs\python\python36- 32\Lib\threading.py", line 864, in run
self._target(*self._args, **self._kwargs)
File "C:\Projects\new\apotofgold\ENV\lib\site- packages\django\utils\autoreload.py", line 54, in wrapper
fn(*args, **kwargs)
File "C:\Projects\new\apotofgold\ENV\lib\site- packages\django\core\management\commands\runserver.py", line 109, in inner_run
autoreload.raise_last_exception()
File "C:\Projects\new\apotofgold\ENV\lib\site- packages\django\utils\autoreload.py", line 77, in raise_last_exception
raise _exception[1]
File "C:\Projects\new\apotofgold\ENV\lib\site- packages\django\core\management\__init__.py", line 337, in execute
autoreload.check_errors(django.setup)()
File "C:\Projects\new\apotofgold\ENV\lib\site- packages\django\utils\autoreload.py", line 54, in wrapper
fn(*args, **kwargs)
File "C:\Projects\new\apotofgold\ENV\lib\site- packages\django\__init__.py", line 24, in setup
apps.populate(settings.INSTALLED_APPS)
File "C:\Projects\new\apotofgold\ENV\lib\site- packages\django\apps\registry.py", line 91, in populate
app_config = AppConfig.create(entry)
File "C:\Projects\new\apotofgold\ENV\lib\site- packages\django\apps\config.py", line 90, in create
module = import_module(entry)
File "C:\Projects\new\apotofgold\ENV\lib\importlib\__init__.py", line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line 994, in _gcd_import
File "<frozen importlib._bootstrap>", line 971, in _find_and_load
File "<frozen importlib._bootstrap>", line 953, in _find_and_load_unlocked
ModuleNotFoundError: No module named 'crispy-forms'
Traceback (most recent call last):
File "manage.py", line 21, in <module>
main()
File "manage.py", line 17, in main
execute_from_command_line(sys.argv)
File "C:\Projects\new\apotofgold\ENV\lib\site- packages\django\core\management\__init__.py", line 381, in execute_from_command_line
utility.execute()
File "C:\Projects\new\apotofgold\ENV\lib\site- packages\django\core\management\__init__.py", line 375, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "C:\Projects\new\apotofgold\ENV\lib\site- packages\django\core\management\base.py", line 323, in run_from_argv
self.execute(*args, **cmd_options)
File "C:\Projects\new\apotofgold\ENV\lib\site- packages\django\core\management\commands\runserver.py", line 60, in execute
super().execute(*args, **options)
File "C:\Projects\new\apotofgold\ENV\lib\site- packages\django\core\management\base.py", line 364, in execute
output = self.handle(*args, **options)
File "C:\Projects\new\apotofgold\ENV\lib\site- packages\django\core\management\commands\runserver.py", line 95, in handle
self.run(**options)
File "C:\Projects\new\apotofgold\ENV\lib\site- packages\django\core\management\commands\runserver.py", line 102, in run
autoreload.run_with_reloader(self.inner_run, **options)
File "C:\Projects\new\apotofgold\ENV\lib\site- packages\django\utils\autoreload.py", line 587, in run_with_reloader
start_django(reloader, main_func, *args, **kwargs)
File "C:\Projects\new\apotofgold\ENV\lib\site- packages\django\utils\autoreload.py", line 572, in start_django
reloader.run(django_main_thread)
File "C:\Projects\new\apotofgold\ENV\lib\site- packages\django\utils\autoreload.py", line 290, in run
self.run_loop()
File "C:\Projects\new\apotofgold\ENV\lib\site- packages\django\utils\autoreload.py", line 296, in run_loop
next(ticker)
File "C:\Projects\new\apotofgold\ENV\lib\site- packages\django\utils\autoreload.py", line 336, in tick
for filepath, mtime in self.snapshot_files():
File "C:\Projects\new\apotofgold\ENV\lib\site- packages\django\utils\autoreload.py", line 352, in snapshot_files
for file in self.watched_files():
File "C:\Projects\new\apotofgold\ENV\lib\site- packages\django\utils\autoreload.py", line 251, in watched_files
yield from iter_all_python_module_files()
File "C:\Projects\new\apotofgold\ENV\lib\site- packages\django\utils\autoreload.py", line 103, in iter_all_python_module_files
return iter_modules_and_files(modules, frozenset(_error_files))
File "C:\Projects\new\apotofgold\ENV\lib\site- packages\django\utils\autoreload.py", line 138, in iter_modules_and_files
if not path.exists():
File "c:\users\gorma\appdata\local\programs\python\python36- 32\Lib\pathlib.py", line 1314, in exists
self.stat()
File "c:\users\gorma\appdata\local\programs\python\python36- 32\Lib\pathlib.py", line 1136, in stat
return self._accessor.stat(self)
File "c:\users\gorma\appdata\local\programs\python\python36- 32\Lib\pathlib.py", line 387, in wrapped
return strfunc(str(pathobj), *args)
OSError: [WinError 123] The filename, directory name, or volume label syntax is incorrect: '<frozen importlib._bootstrap>'
这是我的设置。py
import os
# Build paths inside the project like this: os.path.join(BASE_DIR, ...)
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
TEMPLATE_DIR = os.path.join(BASE_DIR,"templates")
# Quick-start development settings - unsuitable for production
# See https://docs.djangoproject.com/en/2.2/howto/deployment/checklist/
# SECURITY WARNING: keep the secret key used in production secret!
SECRET_KEY = 'n(xni*3g-2+tzjr48176q^jmbx5$l#nb196z@hu-%j9x+h5gx_'
# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = True
ALLOWED_HOSTS = []
# Application definition
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'message',
'users',
'crispy-forms',
'bootstrap4'
,
]
MIDDLEWARE = [
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
]
ROOT_URLCONF = 'apotofgold.urls'
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [TEMPLATE_DIR],
'APP_DIRS': True,
'OPTIONS': {
v 'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
],` },
},
]
WSGI_APPLICATION = 'apotofgold.wsgi.application'
# Database
# https://docs.djangoproject.com/en/2.2/ref/settings/#databases
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
}
}
# Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/2.2/howto/static-files/
STATIC_ROOT = ''
STATIC_URL = '/static/'
STATICFILES_DIRS = [os.path.join(BASE_DIR,"static"),'C:\Projects\new\apotofgold\apotofgold\static ']
STATICFILES_FINDERS = ['django.contrib.staticfiles.finders.FileSystemFinder',
'django.contrib.staticfiles.finders.AppDirectoriesFinder',
]
CRISPY_TEMPLATE_PACK = 'bootstrap4'
LOGIN_REDIRECT_URL = 'message-home'
LOGIN_URL = 'login'
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
现在在本地部署它会很棒,但是如果我能摆脱这个错误,我相信在heroku上部署它不会有问题。
非常感谢您的帮助。如果您需要查看更多我的代码,请告诉我。
编辑:
我的项目结构:
-apotofgold
-apotofgold
--- pycache
---移民
---- pycache
---静态
---模板
---- apotofgold
--- ENV(我的虚拟环境)
---媒体
---消息
---- pycache
----移民
---移民
---静态
---模板
---- apotofgold
---用户
---- pycache
----移民
----模板
EDIT2:
用户的views.py:
from django.shortcuts import render, redirect
from django.contrib.auth.forms import UserCreationForm
from django.contrib import messages
from .forms import UserRegistrationForm
from django.contrib.auth.decorators import login_required
def register(request):
#form = UserCreationForm(request.POST)
if request.method == 'POST':
form = UserRegistrationForm(request.POST)
if form.is_valid():
form.save()
username = form.cleaned_data.get('username')
messages.success(request, f'Account created for {username}!')
return redirect('message-home')
else:
form = UserRegistrationForm()
return render(request, 'users/register.html',{'form':form})
@login_required
def profile(request):
if request.method == 'POST':
if request.user.userprofile is None:
user_profile = UserProfile(user=request.user)
user_profile.save
return render(request, 'users/profile.html')
和模板login.html
{% extends "apotofgold/base.html" %}
{% block content %}
{% load crispy_forms_tags %}
<div class = "content-section">
<form method="POST">
{% csrf_token %}
<fieldset class="form-group">
<legend class="border-bottom mb-4">Log In</legend>
{{ form|crispy }}
</fieldset>
<div class="form-group">
<button class="btn btn-outline-info" type="submit">Log In</button>
</form>
<div class="border-top pt-3">
<small class="text-muted">Need an account?<a href="{% url 'register' %}">Sign Up Now!</a>
</small>
</div>
</div>
{% endblock content %}
答案 0 :(得分:0)
在已安装的应用中,应这样声明脆性表单
'crispy_forms'