學(xué)點(diǎn)簡單的Django之第一個Django程序的實(shí)現(xiàn)
這里采用PyCharm專業(yè)版可以直接創(chuàng)建Django項(xiàng)目,這里面自動部署了Django的基本環(huán)境。在創(chuàng)建項(xiàng)目時選擇Django項(xiàng)目:
第一次建立Django項(xiàng)目時可能需要一段時間去等待下載相關(guān)的依賴環(huán)境。
我們可以在Terminal中輸入python -m django --version
來查看當(dāng)前的Django版本,或者也可以在PyCharm的系統(tǒng)偏好設(shè)置中查看相關(guān)版本信息。
建立完成后自動生成了如下的一些文件。
不知道是環(huán)境問題還是什么問題,Django3.1.4的新建項(xiàng)目直接運(yùn)行會報錯NameError: name 'os' is not defined
這里我們要修改settings.py
文件,在文件中引入os庫。
如果不知道如何引入的同學(xué),這里貼了引入后settings.py
文件的所有內(nèi)容。
""" Django settings for DjangoDemo2 project. Generated by 'django-admin startproject' using Django 3.1.5. For more information on this file, see https://docs.djangoproject.com/en/3.1/topics/settings/ For the full list of settings and their values, see https://docs.djangoproject.com/en/3.1/ref/settings/ """ from pathlib import Path import os # Build paths inside the project like this: BASE_DIR / 'subdir'. BASE_DIR = Path(__file__).resolve().parent.parent # Quick-start development settings - unsuitable for production # See https://docs.djangoproject.com/en/3.1/howto/deployment/checklist/ # SECURITY WARNING: keep the secret key used in production secret! SECRET_KEY = '*z4n3290$mge9mbn04a5+hbdk@@!2y_z$05b_@(^c=ss98+=%&' # 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', ] 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 = 'DjangoDemo2.urls' TEMPLATES = [ { 'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': [os.path.join(BASE_DIR, 'templates')] , 'APP_DIRS': True, 'OPTIONS': { '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 = 'DjangoDemo2.wsgi.application' # Database # https://docs.djangoproject.com/en/3.1/ref/settings/#databases DATABASES = { 'default': { 'ENGINE': 'django.db.backends.sqlite3', 'NAME': BASE_DIR / 'db.sqlite3', } } # Password validation # https://docs.djangoproject.com/en/3.1/ref/settings/#auth-password-validators AUTH_PASSWORD_VALIDATORS = [ { 'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator', }, { 'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator', }, { 'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator', }, { 'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator', }, ] # Internationalization # https://docs.djangoproject.com/en/3.1/topics/i18n/ LANGUAGE_CODE = 'en-us' TIME_ZONE = 'UTC' USE_I18N = True USE_L10N = True USE_TZ = True # Static files (CSS, JavaScript, Images) # https://docs.djangoproject.com/en/3.1/howto/static-files/ STATIC_URL = '/static/'
在修改之后我們再次點(diǎn)擊運(yùn)行即可順利運(yùn)行,沒有BUG了。
此時我們打開http://127.0.0.1:8000/
時出現(xiàn)的是下面的頁面,則說明我們第一個Django項(xiàng)目成功的跑起來了。
下面我們在介紹一下初始生成的幾個文件各有什么樣的作用,Django自動生成的文件為:
DjangoDemo2/ manage.py DjangoDemo2/ __init__.py settings.py urls.py asgi.py wsgi.py templates/
這些文件的含義及用處為:
- 最外層DjangoDemo2文件夾內(nèi)存放了DjangoDemo2項(xiàng)目的所有文件
- DjangoDemo2/manage.py文件存放了管理Django項(xiàng)目的命令行工具。
- DjangoDemo2/DjangoDemo2/文件夾內(nèi)存放的是項(xiàng)目內(nèi)的py代碼,是一個Python包。
- DjangoDemo2/DjangoDemo2/init.py文件是聲明當(dāng)前為文件夾是一個Python包
- DjangoDemo2/DjangoDemo2/settings.py文件是Django的配置文件
- DjangoDemo2/DjangoDemo2/urls.py文件是Django項(xiàng)目的路由聲明
- DjangoDemo2/DjangoDemo2/asgi.py文件是運(yùn)行在ASGI的Web服務(wù)器上的入口,這是Django3之后的新特性。
- DjangoDemo2/DjangoDemo2/wsgi.py文件是運(yùn)行在WSGI的Web服務(wù)器上的入口。
到此這篇關(guān)于學(xué)點(diǎn)簡單的Django之第一個Django程序的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)第一個Django程序的實(shí)現(xiàn)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
初次部署django+gunicorn+nginx的方法步驟
這篇文章主要介紹了初次部署django+gunicorn+nginx的方法步驟,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-09-09python3報錯check_hostname?requires?server_hostname的解決
這篇文章主要介紹了python3報錯check_hostname?requires?server_hostname的解決,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-12-12python運(yùn)行shell命令subprocess的實(shí)現(xiàn)
本文主要介紹了python運(yùn)行shell命令subprocess的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-03-03Python正則表達(dá)式?r'(.*)?are?(.*?)?.*'的深入理解
日常的開發(fā)工作中經(jīng)常會有處理字符串的需求,簡單的字符串處理,我們使用python內(nèi)置的字符串處理函數(shù)就可以了,但是復(fù)雜的字符串匹配就需要借助正則表達(dá)式了,這篇文章主要給大家介紹了關(guān)于Python正則表達(dá)式?r‘(.*)?are?(.*?)?.*‘的相關(guān)資料,需要的朋友可以參考下2022-07-07