django3.2.8 django工程创建:
1.首先切换至对应的虚拟环境中:
workon helloDjango
2.找到对应的路径,创建django工程:
django-admin startproject helloDjango
3.创建django子应用:
django-admin manage.py startapp people
4.使用pycharm打开工程
记住配置环境为使用的虚拟环境:
文件->设置->项目:helloDjango->python解释器->选择你的虚拟环境所在路径中的python3路径即可
具体路径,可在你的虚拟环境中执行:which python3
其所显示路径即为你要使用的路径
5.给子应用牵线搭桥:
5.1在 主工程 -> settings.py -> INSTALLED_APPS 中添加子应用信息:
格式:子应用名.apps.子应用名Config
比如,我这里的子应用名字为:people.
添加格式为:people.apps.PeopleConfig
这里对应:people->apps.py->PeopleConfig(这个函数是创建应用时,工程自动帮我实现的)
# Application definition
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'people.apps.PeopleConfig' #子应用添加
]
5.2.在 主工程 -> urls.py -> urlpatterns 中添加子应用访问信息:
格式:path(’’, include(‘子应用名.urls’)),
urlpatterns = [
path('admin/', admin.site.urls),
path('', include('people.urls')),
]
5.2.1在子应用中添加urls.py,格式和主工程的urls.py一样:
from django.urls import path, include
from people.views import index
urlpatterns = [
path('index/', index), #index是一个函数名
]
当客户访问http://xx.xx.xx.xx:xx/index时,就会跳转到"index"这个函数进行处理。
所以我们还需要在 子应用 -> views.py 中添加 index处理函数。
5.2.2. 子应用 -> views.py 中的index处理函数 就是怎么处理网络请求和返回对应的响应。
所有的该子应用请求都在这里找到对应的函数进行处理。
当然子应用的views.py中处理,可能返回一个hteml,那我们应该怎么做呢?
5.3.在工程目录中添加 template 模板文件夹:
为什么要真这么做?答案是mvt模型
然后所有的子应用html文件都存放在这里。
当然要让主工程找到template模块存放处,需要设置了:
找到: 主工程 -> setting.py -> TEMPLATES -> ‘DIRS’
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [(BASE_DIR / 'template'), (BASE_DIR / 'template_test')],
'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',
],
},
},
]
5.4.使用django的ORM来创建和操作数据库:
django工程不是直接来操作数据库的,而是通过ORM这个框架来间接操作的。当然django中已经包含ORM。所以我们只需要按照一定的规则操作即可。
操作步骤如下:
1.按照ORM语法创建对应的数据库文件(当然不是真正的数据库操作语言,而是ORM的语法)
2.使用 python3 manage.py makemigrations 生产迁移文件,也可以说是中间文件。
3.使用 python3 manage.py migrate 生成对应的本地数据库,这是真正的生成数据库相关的数据库信息,比如库名,表,字段信息。
那么问题来了,它怎么知道我要生成什么数据库数据(比如:oracle , mysql ,sqllite …)?
当然是通过 主工程 -> setting.py -> DATABASES 来设置。
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': BASE_DIR / 'db.sqlite3',
}
}
有可能要设置中英文:
在:
# 英文显示
# LANGUAGE_CODE = 'en-us'
# TIME_ZONE = 'UTC'
#中文显示
LANGUAGE_CODE = 'zh-hans'
TIME_ZONE = 'Asia/Shanghai'
其他指令:
django-admin --help :查看指令
python3 manage.py createsuperuser :给diango创建超级用户,然后就可以通过xx.xx.xx.xx:xx/amdin/登录了
今天就暂时到这里。