Django安装与项目
Django
下载官网:
www.djangoproject.com
Django安装:
1、cmd命令安装:
pip install django==1.11.9
2、在pychrm中安装:
在pychrm中,点击file找到settings打开,在Project:python全栈8期下的Project Interpreter中最左边点击+号后输入django 后在右下方将Specify version勾上选择1.11.9版本后,在左下方点击Install Package后即可安装
创建Django项目:
1,在cmd命令行创建Django项目
在创建Django项目时,先选择目录地址:在pychrm中Copy path当天新建的文件路径后打开cmd输入cd /d 粘贴复制的路径点击回车 输入django-admin startproject s8回车 #创建s8项目 输入cd s8回车 #这里s8为新建的Django项目
创建s8同级的应用:python manage.py startapp 应用名(app01,template等)
启动django:python manage.py runserver ip port(8080)
启动Django:
1、cmd命令行启动:
输入puthon manage.py runserver 查看:在浏览器中 127.0.0.1:8888 停止Django:Ctrl + c
2、在pychrm中创建Django项目
新建django项目:在pychrm中点击File找到New Project后点击,找到并点击Djang。在Location中的C:\Users\lenovo\PycharmProjects...\框中粘贴新建的文件路径后将新的Django项目名写在后面,
点开More Settings,在Application name矿中添写app01.后点击Creat。然后在pychrm中新建的文件中就会有新建的Django项目。
2、在pychrm中启动:
在启动Django时,如果端口号被占用,最简单的改端口号如下操作:
注意:
有时因为pychrm版本不同,在pychrm中创建Django项目时会出现以下情况。(按注释操作)
Django项目目录结构
mysite/ 项目名 ├── manage.py # 管理文件 └── mysite # 项目目录 ├── __init__.py ├── settings.py # 放 与项目所有设置相关 ├── urls.py # 路由 --> URL和函数的对应关系 └── wsgi.py # runserver命令就使用wsgiref模块做简单的web server
运行项目:
python manage.py runserver 127.0.0.1:8000
初学Django时,新建Django项目要做的三件的事:
1,配置静态文件
STATIC_URL = '/static/' # HTML中使用的静态文件夹前缀 STATICFILES_DIRS = [ os.path.join(BASE_DIR, "static"), # 静态文件存放位置******** ]
注意点:
<1>,如果是用命令在cmd中创建的Django项目,在pychrm中没有静态文件static和template文件,需要我们手动在pychrm文件中的新建Django项目下创建static和template文件,然后将bootstrap-3.37,jquery-3.2- 1,css,等文件放在static中,将http页面放在template中即可。再在项目下与项目名相同的文件中找到setting.py,在setting.py中找到MIDDLEWARE先注视掉csrf中间件,在找到TEMPLATES---->找到DIRS,在空的 [ ]中填写 os.path.join(BASE_DIR,'templates')。在找到STATIC_URL = '/static/',在它下面写上STATICFILES_DIRS = [os.path.join(BASE_DIR,'static')]。
<2>如果是直接使用pychrm创建的Django项目,pychrm本身就会自带将 TEMPLATES中的DIRS配置好,无须在手动写。只要手动注释掉csrf中间件,和在找到STATIC_URL = '/static/',在它下面写上STATICFILES_DIRS = [os.path.join(BASE_DIR,'static')]即可。
2,配置模板文件
TEMPLATES = [ { 'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': [os.path.join(BASE_DIR, "template")], # template文件夹位置 **检查tmeplate的配置是否正确 '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', ], }, }, ]
在pychrm中执行models文件的两条命令:
1、python manage.py makemigrations
2、python manage.py migrate
创建超级用户:
在Tools中打开run manage.py Task 输入:createsuperuser回车
看不明白看图
3,刚开始学习时,可在配置文件中暂时禁用csrf中间件,方便表单提交测试
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', ]
Django基础必备三件套:
from django.shortcuts import HttpResponse(回给前端页面的响应/数据), render(渲染页面), redirect(跳转页面)
HttpResponse
内部传入一个字符串参数,返回给浏览器
def index(request): # 业务逻辑代码 return HttpResponse("OK")
render
除request参数外还接受一个待渲染的模板文件和一个保存具体数据的字典参数。
将数据填充进模板文件,最后把结果返回给浏览器。(类似于我们上面用到的jinja2)
def index(request): # 业务逻辑代码 return render(request, "index.html", {"name": "alex", "hobby": ["烫头", "泡吧"]})
redirect
接受一个URL参数,表示跳转到指定的URL。
def index(request): # 业务逻辑代码 return redirect("/home/")
课后练习:
Django版登录
启动Django报错:
Django 启动时报错 UnicodeEncodeError ...
报这个错误通常是因为计算机名为中文,改成英文的计算机名重启下电脑就可以了。