Django—安装与新建
1、安装与新建项目
1.1 版本下载
版本:11.11版本
python解释器:3.4到3.6版本,高于3.6的解释器不兼容Django部分功能
1.2 django项目目录架构
django项目名
项目同名的文件夹
settings.py 暴露给用户可以配置的配置文件
urls.py 路由与视图函数对应关系
manage.py django的入口文件
应用名文件夹
migrations文件夹 所有数据库相关的操作记录
admin.py django admin后台管理
apps.py 注册app使用
models.py 放所有数据库相关的模型类
tests.py 测试文件
views.py 处理业务逻辑的视图函数
templates文件夹 # 该目录名称在创建时可自定义,一般都用这个,用于存放所有的html文件
1.3 新建项目
1、命令行创建
1、测试Django下载安装成功
django-admin
2、创建django项目
django-admin startproject project_name
3、运行测试
进入项目目录
python manage.py runserver
运行成功,给出一个服务器地址,使用本地浏览器访问,若返回it works 等信息即创建成功
注意点:
1、不会自动创建templates文件夹,需要手动创建
2、配置文件中不会自动书写templates文件夹路径
(templates是专门存放html文件的,各个app应用需要的的html文件都放在这里)
4、创建app
app :就是web项目的应用,对应一个具体的功能模块
命令:python manage.py startapp app_name
注意:
创建好一个应用,需要手动添加应用名到django配置文件中才能生效,配置文件中的应用列表:
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
# 'app01' # 简便写法
'app01.apps.App01Config' # 最完整的写法
]
2、pycharm编辑器创建
1、创建django项目
file->New Project->Django:
选择项目文件路径(包含项目名)
选择python解释器(不能高于3.6)
创建应用的名称
勾选Enable Django admin
2、创建项目后,创建应用可以使用简介方式
Tools->Run manage.py Task
弹出manage.py@当前文件夹名 输入框
在此处使用startproject project_name和startapp app_name即可在当前文件夹内创建项目和app
3、注意事项
1、同一端口,同一时间只能启用一个django项目
2、配置文件中针对templates文件夹的路径 如果是空的需要你手动配置
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',
],
},
},
]
2、简单应用
2.1 响应客户端的三种方式
导入模块
# 一般应用于views.py,通过模块导入
# 1、返回字符串 HttpResponse
# 2、返回html文件 render
# 3、重定向 redirect
from django.shortcuts import render, HttpResponse, redirect
示例
def quit(request):
return HttpResponse('滚') # 直接返回字符串。也可以是bytes类型字符串
def login(request):
user_dic = {'username': 'jason', 'password': '123'}
return render(request, 'login.html', {'xxx': user_dic})
'''
1、第二个参数为html文件名
2、第三个参数的作用是,传给html文件,在html文件中可以通过访问key得到value
在html文件中,访问方式是:
访问xxx:{{xxx}}
访问username:{{xxx.username}}
循环访问:{% for foo in xxx %}
在循环体内,可以访问foo,当作变量处理,同样要{{foo}}访问
{% endfor %}
'''
def home(request):
return redirect("https://www.baidu.com")