Django学习之路(一)--初识django

1.先创建虚拟环境

为什么要创建虚拟环境呢?
你有两个项目同时进行,一个需要pytnon3.9和Django3.x版本的,一个需要python3.7和Django2.x版本的,不进行环境隔离的话,运行很麻烦,还不懂的话可以自行百度
可以用virtualenv(虚拟环境包)

2.兼容性问题

2.1Django对python版本的兼容性问题

发布系列 最新发布 主流支持结束 扩展支持结束
3.2(LTS) 3.2.10 2021年12月 2024年4月
2.2(LTS) 2.2.25 2019年12月2日 2022年4月
1.11(LTS) 1.11.29 2017年12月2日 2020年4月1日
1.8(LTS) 1.8.19 2015年12月1日 2018年4月1 日
1.4(LTS) 1.4.22 2013年2月26日 2015年10月1日

未来版本

发布系列 发布日期 主流支持结束 扩展支持结束
4.2(LTS) 2023年4月 2023年12月 2026年4月

官方对照表: https://www.djangoproject.com/download/#supported-versions.

推荐这几个版本
Django 2.2 LTS(长期支持版本)
Django 3.2 LTS(长期支持版本)
Django 4.2 LTS(长期支持版本)

2.1Django对python版本的兼容性问题

Django 版本 Python版本
2.2 3.5、3.6、3.7、3.8(2.2.8中增加)、3.9(2.2.17中增加)
3.0 3.6、3.7、3.8、3.9(在 3.0.11 中添加)
3.1 3.6、3.7、3.8、3.9(在3.1.3中添加)
3.2 3.6、3.7、3.8、3.9、3.10(在3.2.9中添加)

官方文档: https://docs.djangoproject.com/en/3.2/faq/install/#faq-python-version-support.

3.创建项目

django-admin startproject web

此时目录

|-- web
|   |-- __init__.py
|   |-- settings.py
|   |-- urls.py
|   `-- wsgi.py
`-- manage.py

目录说明:

  • web: 项目的容器。
  • manage.py: 一个实用的命令行工具,可让你以各种方式与该 Django 项目进行交互。
  • web/__init__.py: 一个空文件,告诉 Python 该目录是一个 Python 包。
  • web/settings.py: 该 Django 项目的设置/配置。
  • web/urls.py: 该 Django 项目的 URL 声明; 一份由 Django 驱动的网站"目录"。
  • web/wsgi.py: 一个 WSGI 兼容的 Web 服务器的入口,以便运行你的项目。
cd web							  #进入目录
python manage.py startapp myhome  #新建myhome app
python manage.py startapp myadmin #新建myadmin app

数据库使用版本mysql5.7.25

4.更改配置文件

进入到web/settings.py文件中
修改

ALLOWED_HOSTS = ['*']
INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'myadmin',# 自定义的APP
    'myhome'# 自定义的APP
]
TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [os.path.join(BASE_DIR,'templates')],#是指到  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',
            ],
        },
    },
]
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql', #  数据库引擎
        'NAME': 'bookshop',#选择数据库的名,请确认你的mysql中有这个库
        'USER':'root',	# 数据库登录用户名
        'PASSWORD':'123456',	# 数据库密码
        'HOST':'localhost',#数据库主机IP,如保持默认,则为127.0.0.1
        'PORT':'3306', # 数据库端口号,如保持默认,则为3306
    }
}
LANGUAGE_CODE = 'zh-Hans'#把英文改为中文
TIME_ZONE = 'Asia/Shanghai'#设置时区
USE_I18N = True #默认为True,是否启用自动翻译系统
USE_L10N = True# 默认False,以本地化格式显示数字和时间
USE_TZ = False# 默认值True。若使用了本地时间,必须设为False
STATIC_URL = '/static/'
STATICFILES_DIRS=[
    os.path.join(BASE_DIR,'static')
]

5.增加templates文件夹和static文件夹

|-- myadmin
|-- myhome
|-- static
|-- templates
|-- web
|-- manage.py

6.添加数据库

mysql -u root -p
create database bookshop default charset=utf8mb4;

7.给myadmin和myhome添加页面

web/myadmin/views.py
修改以下内容:

from django.shortcuts import render
from django.http import HttpResponse
# Create your views here.
def index(request):
    return HttpResponse("网站的后台页面")

web/myhome/views.py

from django.shortcuts import render
from django.http import HttpResponse
# Create your views here.
def index(request):
    return HttpResponse("网站的前台页面")

8.添加路由

web/web/urls.py

from django.contrib import admin
from django.urls import path,include

urlpatterns = [
    #path('admin/', admin.site.urls),
    path('myadmin/', include('myadmin.urls')),
    path('', include('myhome.urls')),
]

新建urls.py文件
web/myhome/urls.py

from django.urls import path
from . import views

urlpatterns = [
    path('', views.index,name="myhome_index"),
]

web/myadmin/urls.py

from django.urls import path
from . import views

urlpatterns = [
    path('', views.index,name="myadmin_index"),
]

9.运行

python manage.py runserver 0.0.0.0:80

可能会报错import MySQLdb as Database ModuleNotFoundError: No module named 'MySQLdb'

pip install mysqlclient

你可能感兴趣的:(Django,django,python,后端)