Django项目创建与三板斧
一.下载安装Django与创建项目
1. 使用命令行下载Django
pip3 install django
提示:如果已经安装了其他版本,无需自己卸载
排错:
1.如果报错,看看是不是timeout 如果是 那么只是网速波 重新安装即可
2. 如果pip命令也出现错误Fatal error in launcher: Unable to create process using, 那么更新pip命令
python -m pip install --upgrade pip
#下载太慢可以更换下载清华源下载:
使用方法 : pip install -i https://pypi.tuna.tsinghua.edu.cn/simple django
2.Django官网文档
- Django官网文档 : https://docs.djangoproject.com/zh-hans/4.1/
二、创建项目
1. 命令行创建Django
第一步:创建Django项目
#注意:这种创建方式十创建到当前文件夹下,如果需要创建指定文件夹下再执行这条命令
1.切换文件夹
cd [文件夹]
2.创建Django项目
django-admin startproject 项目名
第二部:启动Django项目
'''注意:一定要切换到项目文件夹下'''
#启动Django项目
python3 manage.py runserver [ip]:[port] #runserver后面可以绑定IP和端口,不指定使用默认的本机回还地址,Django默认端口为8000。
第三步:创建应用
#创建应用
python manage.py startapp app01 #app01应该见名知意
第四步: 注册应用
创建的应用一定要去setting.py配置文件中找到INSTALLED_APPS进行注册
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'app01.apps.App01Config',
'app02.apps.App01Config', # 注册完整写法
'app02' # 注册简写
]
2.使用pycharm创建Django项目
第一步:创建Django项目
打开pycharm主界面,File
----->New Project
,接下来如图所示:
在创建项目时指定Application可以创建一个, 且同时也会在settings.py配置文件中INSTALLED_APPS中注册.
第二步:启动Django项目
- 出现报错信息
模板文件配置:
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [os.path.join(BASE_DIR, "template")], # template文件夹位置
'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',
],
},
},
]
点击链接进入查看
第三步:创建新的应用
- Tools----->Run manage.py Task...(快捷键 : Ctrl+Alt+r)
命令框内输入如下格式命令创建app:
python manage.py startapp [app名字] #这样就会创建一个新的app
三、项目目录结构
1.目录结构介绍
mysite/ #项目名
├── manage.py # 管理文件. django的入口文件
├── mysite # 项目目录
├── __init__.py
├── settings.py # 配置
├── urls.py # 路由和视图函数的对应关系(路由层)
└── wsgi.py # runserver命令就使用wsgiref模块做简单的web server
├── db.sqlite3 # django自带的sqlite3数据库(小型数据库 功能不是很多还有bug)
├── templates #存储数据库记录相关(类似于操作日志)
└── app01 # 应用目录(可以有多个)
├── migrations # 数据库迁移记录
└── __init__.py
├── __init__.py
├── admin.py # django后台管理
├── apps.py # 注册app使用
├── models.py # 数据库相关的 模型类(orm)
├── test.py # 测试文件
└── views.py # 视图函数(视图层)
2.setting.py配置文件
- DEBUG
定义一个布尔值,表示开启/禁用当前项目的调试迷失
如果DEBUG为True,当应用程序抛出未捕获异常时,Django将显示详细的错误页面
如果要发布项目上时,需将其设置为False,以免暴露某些与产品相关的敏感参数
- ALLOWED_HOSTS
允许访问的主机, 默认为[ ],对于初学者来说可以不必理会
在发布产品时才会用到,上线之后可以写
*
, 表示所有
- INSTALLED_APPS
表示为需要针对全部项目进行编辑的设置项,该设置项通知Django针对当前站点的哪一个应用程序处于活动状态
默认状态下,Django包含了以下6个应用程序
'django.contrib.admin', # 管理站点
'django.contrib.auth', # 验证框架
'django.contrib.contenttypes', # 处理内容类型的框架
'django.contrib.sessions', # 会话框架
'django.contrib.messages', # 消息机制框架
'django.contrib.staticfiles', # 管理静态文件框架
- MIDDLEWARE
表示中间件列表,在后期使用表单时,如果是:post 请求,需加上{% csrf_token %}
- DATABASES
表示一个字典,其中涵盖了应用程序所使用的全部数据库设置。默认采用的是SQLite3数据库
- ROOT_URLCONF
表示pytho模块,其中定义了应用程序的根URL路径
- LANGUAGE_CODE
针对当前Django站点定义了默认的代码语言
- USE_TZ
通知Django启用/禁用时区支持
Django提供了基于时区的日期显示, 当创建一个新项目时,该设置项将定义为True
四、使用脚本调用django
1 写一个脚本文件
import os
#加载配置文件,跑django的项目,最开始就是把配置文件加载上
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "day53.settings")
if __name__ == '__main__':
import django # 安装了django模块,就可以import
django.setup() # 使用环境变量中的配置文件,跑django
from app01 import models
五、Django三剑客
1.三剑客
- HttpResponse (HTTP请求)
- render (渲染)
- redirect (重定向)
2.三剑客介绍
将三剑客统统导入
from django.shortcuts import HttpResponse,render,redirect # 将三剑客统统导入
- HttpResponse : 返回字符串类型的数据
def login(request):
return HttpResponse('欢迎登入该网站')
- render : 返回HTML文件, 支持向HTML文件中传参并使用模板语法(动态HTML页面)
# 视图函数必须接收一个参数request
def login(request):
return render(request,'login.html')
# 动态页面两种传值方式
# 1.使用字典的形式进行传值 : 更加精确,节省资源
def login(request):
user_info = {"name":"shawn","age":23}
return render(request,'index.html',{"data":user_info,"datetime":"2021.03"})
# 2.使用locals,会将所在名称空间中所有的名字全部传递给HTML页面调用 : 当想要的数据特别多的时候推荐使用
def login(request):
return render(request,"login.html",locals())
- redirect : 重定向
# 返回他人的网址重定向
def login(request):
return redirect("https://www.baidu.com")
# 返回自己的网址重定向
def login(request):
return redirect("/index")
版权声明:
作者:淘小欣
链接:https://blog.taoxiaoxin.club/146.html
来源:淘小欣的博客
文章版权归作者所有,未经允许请勿转载。

共有 0 条评论