Django介绍

   Django框架是PythonWeb三大主流框架之一,以其功能强大全面而受到众多开发者追捧,现如今Django已经更新到3版本,但是并不推荐使用,更多建议使用1版本。

Django版本 Python版本
1.11 2.7、3.4、3.5、3.6、3.7(在1.11.17中添加)
2.0 3.4、3.5、3.6、3.7
2.1 3.5、3.6、3.7
2.2 3.5、3.6、3.7、3.8(在2.2.8中添加)
3.0、3.1 3.6、3.7、3.8

  

Django安装

   使用pip install django==1.11.11安装Django

   当下载完成后,可以使用django-admin来查看是否安装成功

C:\Users\云崖先生>django-admin

Type 'django-admin help <subcommand>' for help on a specific subcommand.

Available subcommands:

[django]
check
compilemessages
createcachetable
dbshell
diffsettings
dumpdata
flush
inspectdb
loaddata
makemessages
makemigrations
migrate
runserver
sendtestemail
shell
showmigrations
sqlflush
sqlmigrate
sqlsequencereset
squashmigrations
startapp
startproject
test
testserver
Note that only Django core commands are listed as settings are not properly configured (error: Requested setting INSTALLED_APPS, but settings are not configured. You must either define the environment variable DJANGO_SETTINGS_MODULE or call settings.configure() before accessing settings.).

常用命令

   第一次接触Django,这里有一些常用的CMD命令

基本命令 解释说明
django-admin startproject 项目名称 创建一个Django项目
python manage.py startapp 应用名称 创建一个APP
python manage.py runserver ip地址 port号 运行Django项目,如不指定IP与PORT默认为127.0.0.1与8000
python manage.py makemigrations 创建数据库的py文件
python manage.py migrate 将生成的py文件应用到数据库
python manage.py flush 数据库中数据全部清除,只留下表
python manage.py createsuperuser 创建管理员用户,密码(邮箱可以留空)
python manage.py changepassword 用户名 修改管理员用户密码

注意事项

   使用Django时,有以下4条建议

   1.计算机名称不能包含中文

   2.IDE中一个窗口只开一个项目

   3.项目中所有文件夹均不要使用中文

   4.Python解释器请按照与之相对的Django版本进行选择,我这里使用Python3.6.6

目录介绍

   接下来我们使用命令行创建出一个新的Django项目。

django-admin startproject Perfect

   然后再新建一个APP,在Django中每一个 APP都相当于一个功能的集合,如有处理学生相关的业务就创建一个名为studentAPP,老师相关的业务就创建一个名为teacherAPP

python manage.py startapp app01  # 注意在此之前要cd进项目根目录

   目录如下:

-- PERFECT	项目文件夹

	-- app01	应用文件夹
-- migrations.py 数据库迁徙文件
-- admin.py django后台管理
-- apps.py 注册相关
-- models.py 数据库相关(ORM类)
-- tests.py 测试文件
-- views.py 视图相关函数 -- Perfect 项目全局文件夹
-- settings.py 全局配置文件
-- urls.py 路由视图关系
-- wsgi.py wsgiref模块(Django基于该模块) -- manage.py 入口文件
-- sqlite3 自带微型数据库(可有可无)

   这个时候我们应该做一件事,在项目根目录下新建一个templates文件夹,用于存放HTML文档。

   (如果你是使用Pycharm进行创建Django项目可忽略这一步)

配置文件

   打开项目全局文件夹下的settings.py,认识一下各个组件及其功能。

"""
Django settings for Perfect project. Generated by 'django-admin startproject' using Django 1.11.11. For more information on this file, see
https://docs.djangoproject.com/en/1.11/topics/settings/ For the full list of settings and their values, see
https://docs.djangoproject.com/en/1.11/ref/settings/
""" import os # 像这样在项目内部构建路径:os.path.join(BASE_DIR,...)
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) # 快速启动开发设置-不适合生产
# See https://docs.djangoproject.com/en/1.11/howto/deployment/checklist/ # SESSION相关的密钥,上线之后一定要保密
SECRET_KEY = 'm00e=*1gwly+6$&_g=tk&rd)lu8p-v_)1k(y&@7p_xn663$ph#' DEBUG = True # DEBUG信息,会给提示,上线后改为False即可 ALLOWED_HOSTS = [] # 允许访问的主机,上线后改为 ["*"] # 注册的APP,新建一个APP后需要进行手动配置
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
] # 中间件,新手玩家请注释掉 'django.middleware.csrf.CsrfViewMiddleware',
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',
] ROOT_URLCONF = 'Perfect.urls' # HTML文件存放路径配置
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [],
'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 = 'Perfect.wsgi.application' # https://docs.djangoproject.com/en/1.11/ref/settings/#databases
# 项目指定用的数据库,可以自行修改。默认使用sqlite3
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
}
} # 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/'

手动配置

   好了,在创建完APP后需要在配置文件中进行一些手动配置,分别是注册APP,拼接HTML文档路径,这两个是必须的。此外还可选择性对csrf验证中间件进行注释,以及配置数据库链接,配置静态文件等等。

   这些都放在后面会说,后面会单独开一章settings的文章来具体写各个部分的用途。

   注意:如果使用Pycharm进行创建可忽略注册APP与拼接HTML文档路径,这些Pycharm都会帮你自动做好,但是还是建议你看一眼。

注册APP

   注册APP非常简单,只需要在配置文件中找到下面的位置添加上上下面一条信息即可。

INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'app01.apps.App01Config',
]

   也可以进行简写

'app01',

HTML路径

   拼接HTML文档路径也是在配置文件中添加。

   以下示例中templates是我对存放HTML文档的文件夹取的名字,推荐使用这个名字。

TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [os.path.join(BASE_DIR,"templates")], # 在这里添加上 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',
],
},
},
]

启动Django

   上面的基础工作做完之后,可以尝试启动一下Django服务了,但是为了体现效果这里还是超出范畴的写一点东西。

   返回一个简单的登录页面吧,这里不涉及数据库,静态文件等操作,所以你要做的就只有3步

   1.配置路由,

   2.配置一个视图函数,

   3.写一个页面

配置路由

   配置路由的作用在于对不同的请求路径进行处理,返回不同的页面,这里面其实也有很多知识点,先不涉及做个简单的。

   在项目全局文件夹下,打开urls.py,导入一下app01views.py,再插入一条代码。

from django.conf.urls import url
from django.contrib import admin
from app01 import views urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r"^login/",views.login), # 新增代码
]

编写函数

   现在就可以做一下app01下的views.py中的内容了,由于路由里对于http://127.0.0.1:8000/login的请求处理函数是login,所以我们需要写一个login函数来进行处理。

from django.shortcuts import render

# Create your views here.
def login(request):
return render(request,"login.html") # 必须返回request

页面编写

   上面的请求处理函数返回了一个login.html,这里其实就是返回的templates中的HTML文档,可惜我们现在还没有login.html,所以新建一个即可。

<!DOCTYPE html>
<html lang="en"> <head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Document</title>
<style>
* {
margin: 0;
padding: 0;
box-sizing: border-box;
list-style: none;
} body {
width: 100vw;
height: 100vh;
display: flex;
justify-content: center;
align-items: center;
}
body main form{
padding: 5px;
border: #ddd solid 1px;
background: #eee; }
body main form p{
margin: 10px;
}
</style>
</head> <body>
<main>
<form action="#">
<p><input type="text" name="username" placeholder="请输入您的用户名"></p>
<p><input type="password" name="password" placeholder="请输入您的密码"></p>
<p><button type="submit" disabled>提交</button></p>
</form>
</main>
</body> </html>

结果测试

   现在将开启Django服务进行测试操作

python manage.py runserver

   看下图,已经成功到访问到了页面,其实所有的Web框架流程无非就是解析请求资源,处理数据,返回HTML文档这三步骤。

Django 入门介绍的更多相关文章

  1. Django入门-框架目录介绍

    Django入门博客:https://www.cnblogs.com/chuangming/p/9076721.html#4098510 备注:使用 Django 框架之后,开发服务端方便了很多.我们 ...

  2. python web框架Django入门

    Django 简介 背景及介绍 Django是一个开放源代码的Web应用框架,由Python写成.采用了MVC的框架模式,即模型M,视图V和控制器C.它最初是被开发来用于管理劳伦斯出版集团旗下的一些以 ...

  3. django入门 -- 简单流程

    django入门 -- 简单流程 简介 通过简单示例,使用django完成基本流程的开发,学习django的主要的知识点,在后续课程中会逐个知识点进行深入讲解 以“图书-英雄”管理为示例 主要知识点介 ...

  4. C# BackgroundWorker组件学习入门介绍

    C# BackgroundWorker组件学习入门介绍 一个程序中需要进行大量的运算,并且需要在运算过程中支持用户一定的交互,为了获得更好的用户体验,使用BackgroundWorker来完成这一功能 ...

  5. 初识Hadoop入门介绍

    初识hadoop入门介绍 Hadoop一直是我想学习的技术,正巧最近项目组要做电子商城,我就开始研究Hadoop,虽然最后鉴定Hadoop不适用我们的项目,但是我会继续研究下去,技多不压身. < ...

  6. [Python爬虫] 在Windows下安装PhantomJS和CasperJS及入门介绍(上)

    最近在使用Python爬取网页内容时,总是遇到JS临时加载.动态获取网页信息的困难.例如爬取CSDN下载资源评论.搜狐图片中的“原图”等,此时尝试学习Phantomjs和CasperJS来解决这个问题 ...

  7. [Python爬虫] scrapy爬虫系列 <一>.安装及入门介绍

    前面介绍了很多Selenium基于自动测试的Python爬虫程序,主要利用它的xpath语句,通过分析网页DOM树结构进行爬取内容,同时可以结合Phantomjs模拟浏览器进行鼠标或键盘操作.但是,更 ...

  8. 【django入门教程】Django的安装和入门

    很多初学django的朋友,都不知道如何安装django开发以及django的入门,今天小编就给大家讲讲django入门教程. 注明:python版本为3.3.1.Django版本为1.5.1,操作系 ...

  9. JavaScript入门介绍(二)

    JavaScript入门介绍 [函数] 函数function 是Javascript的基础模块单元,用于代码的复用.信息影藏和组合调用. function a(){} 函数对象Function Lit ...

随机推荐

  1. 微信公众号如何将PDF上传到公众号?

    微信公众号如何将PDF上? 我们都知道创建一个微信公众号,在公众号中发布一些文章是非常简单的,但公众号添加附件下载的功能却被限制,如今可以使用小程序“微附件”进行在公众号中添加附件. 以下是公众号添加 ...

  2. C# Thread.Join的报错情形——论执行完的线程能够成功执行Join吗

    结论: 能, 执行完的线程调用Join不会抛出错误. Thread.Join()是什么? Join()函数用于阻塞地等待线程结束, 其行为是在线程A中调用了线程B的Join()后, 线程A将一直阻塞在 ...

  3. Java—Map接口中的常用方法

    Map接口与Collection接口的区别 Collection中的集合,元素是孤立存在的(理解为单身),向集合中存储元素采用一个个元素的方式存储. Map中的集合,元素是成对存在的(理解为夫妻).每 ...

  4. java数组与数组异常

    一 数组的定义 1.第一种定义方法: 格式: 数据类型[] 数组名=new 数据类型[数组长度] 2.第二种定义方法: 格式: 类型[] 数组名 = new 类型[]{元素,元素,.....} 3.第 ...

  5. 2020-07-23:开启rdb后,redis的启动流程是怎样的?

    福哥答案2020-07-23: Redis 在完成初始化全局服务器配置,加载配置文件,初始化服务器,开始加载持久化的数据到内存中.如果启用了 appendonly 了,则Redis从 appendfi ...

  6. 编译原理 First集和Follow集的求法

    转载地址 https://blog.csdn.net/Alexander_Frank/article/details/51280798 自上而下分析: FIRST集求法 First集合最终是对产生式右 ...

  7. 解决 EntityFrameworkCore tool 3.1 init.ps1 is not recognized 问题

    昨天将项目升级到.net core 3.1后, 打开vs2019 Package Manager Console后突然发生了错误,如下 最终导致EntityFramework 迁移相关命令都不能正常使 ...

  8. python 11 类与对象

    给大家介绍对象hhhh 封装 举个例子,把乱七八糟的数据仍到列表,数据层面的封装 把常用的代码打包成一个函数,封装 外观特征(静态) 能做什么(动态) 对象=属性(静态) + 方法(动态) 1.方法多 ...

  9. docker简记

    title: docker学习简记 date: 2019-10-16 15:10:39 tags: docker Docker简记 1:Docker简介 1)出现背景 一款产品从开发到上线,从操作系统 ...

  10. AWS 学习笔记之 VPC

    原文:https://ericfu.me/aws-notes-vpc/ VPC 把 VPC 想象成一个逻辑上的数据中心 包含一个 IGW (Internet Gateway)或者 Virtual Pr ...