1.django 版本 及安装
1.x - 3.x pip install django 1.11.11 如果安装其他版本
M 代表模型(Model):负责业务对象和数据库的关系映射(ORM)。
T 代表模板(Tempalte):负责如何把页面展示给用户(html)。
V 代表视图(View):负责业务逻辑,并在适当的时候调用Model和Template。
前端访问后端的方式 http://127.0.0.1:8000/login/ ==> 到路由 urls url(r'^login/', views.login) 找到 对应的views
views可以调用models 去进行数据处理,在返回一个前端页面 return render(request,'login.html') 或数据 return HttpResponse('用户名不存在')
常用命令:
django-admin.py -- version 查看版本号 django-admin.py startproject project_name 创建项目 python3 manage.py startapp app_name 创建APP python3 manage.py makemigrations python3 manage.py migrate python3 manage.py runserver 0.0.0.0:8000 启用django服务器 python3 manage.py flush 清空数据库 python3 manage.py createsuperuser 创建超级用户 python3 manage.py changepassword username 更改密码 python3 manage.py dumpdata appname > appname.json python3 manage.py loaddata appname.json 导入数据库 python3 manage.py shell 终端 python3 manage.py dbshell DB终端
命令创建项目与pycharm 创建项目的区别:
1.使用命令行创建的django项目是不会自动创建templates摸版本文件夹 你只能自己手动创建 2.命令行创建的django项目不但没有templates文件夹配置文件中也没有填写路径 而pycharm创建的会自动添加
Django 目录及其作用
mysite -mysite 创建项目时自动生成 --__init__.py --settings.py 项目配置文件 新建app时,必须在setting里面注册 --urls.py 路由视图函数对应关系 项目的总路由 --wsgi.py -manage.py app01 创建app时生成 --migrations文件夹 数据库改动记录 ----__init__.py --__init__.py --admin.py django后台管理 amin 内置超级用户 --apps.py 注册app相关 --models.py 模型类(ORM) --tests.py 测试文件 --views.py 视图函数(******)
setting文件目录详解
新建app时,必须在setting里面注册:
# Application definition # 已经安装过的app 我们创建的app也必须先在这个地方注册之后才能正常执行 INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', # 注册我们自己的app # 'app01' # 简写 'app01.apps.App01Config' # 完整写法 ]
# 中间件
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',
]
# 模板文件夹配置
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 = 'mysite.wsgi.application'
# Database
# https://docs.djangoproject.com/en/1.11/ref/settings/#databases
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
}
}
# Password validation
# https://docs.djangoproject.com/en/1.11/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/1.11/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/1.11/howto/static-files/
STATIC_URL = '/static/'
Django 项目创建
django框架 1.注意事项 1.计算机名称不能有中文 2.项目文件名也不要用中文 3.一个pycharm窗口就是一个单独的完整的项目 2.版本问题 1.X 2.X 推荐你使用1.X版本里面的 1.11.09~1.11.13 如果你已经按照过不需要手动卸载 重新安会自动先卸载之前的版本再安装 3.安装 pip3 install django==1.11.11 4.测试是否安装成功 命令行输入django-admin 如何创建django项目 1.命令行 1.创建django项目 django-admin startproject mysite(项目名) 效果:创建一个mysite的文件夹 mysite -mysite --__init__.py --settings.py --urls.py --wsgi.py -manage.py 2.启动django项目(先切换到项目目录下) python3 manage.py runserver # django默认的端口号是8000 3.创建具有独立功能的app 通常情况下应该做到见名知义 python manage.py startapp app01 app01 --migrations文件夹 --__init__.py --admin.py --apps.py --models.py --tests.py --views.py """ 1.使用命令行创建的django项目是不会自动创建templates摸版本文件夹 你只能自己手动创建 2.命令行创建的django项目不但没有templates文件夹配置文件中也没有填写路径 而pycharm创建的会自动添加 """ 2.pycharm快捷创建 app的概念 application 应用 django其实是一个专注于开发app的web框架 一个空的django项目就类似于是一所大学 app就类似于大学里面的各个学院 每个app其实就类似于不同的功能模块 购物网站 用户相关 user 用户相关的app 订单相关 order 订单相关的app 投诉相关 tousu 投诉相关的app 不同的功能模块推荐使用不同的app去开发 django支持多app
三大主流框架
django 大而全 自身携带的组件和功能特别特别多 就类似于航空母舰 不足之处:笨重 当你的功能不多 不需要使用很多其他功能 flask(源码600多行 请求上下文 应用上下文) 小而精 自身携带的组件和功能特别特别少 就类似于游骑兵 虽然自身功能比较少 但是第三方支持该框架的模块特别特别多 如果你将flask第三方模块全部叠加起来 甚至可以超过django 不足之处:受限于第三方模块 tornado 异步非阻塞 天然支持高并发 甚至可以用它来开发游戏服务器
动静态网页
静态网页 数据是写死的 万年不变 动态网页 数据是动态获取的 eg: 1.获取当前时间 2.从数据库中获取数据
程咬金三板斧
django小白必会三板斧 HttpResponse 返回字符串 可以是二进制格式 render 返回html页面 并且可以给html页面传数据 模板的渲染(将数据在后端按照模板语法放入html对应的位置) redirect 重定向 def index(request): return HttpResponse('你好啊 小妹妹') def login(request): return render(request,'login.html',{'user_dict':{'username':'jason','password':123},'userxxx':'hello world'}) def home(request): # return redirect('https://www.mzitu.com') return redirect('/index')