Python 3.7 + Django 2.2.5 Web项目搭建
一、前言
Django 是一个开放源代码的 Web 应用框架,由 Python 编写。采用了 MTV 的框架模式,即模型 M,模板 T 和视图 V。当然,网上也有人说 Django 采用了 MVC 的软件设计模式,即模型 M,视图 V 和控制器 C。由于我也是刚开始接触 Python Web,不好给大家解释其中的区别,给大家推荐一篇文章:
## 理解django框架中的MTV与MVC模式
https://www.cnblogs.com/YeChing/p/6339969.html
前段时间一直在用 Python 练习爬虫,忽然想学学 Python Web,感觉 Django 这个 Web 框架很不错,学了几天,做一个 Demo 来记录一下。供读者作为参考,作为 Django 入门学习。还请各位同学多多指教,如发现问题提出来,大家互相改进,互相提升。
二、开发环境
我的 Python 和 Django 版本:
- Python 3.7(你需要Python3及以上)
- Django 2.2.5(你需要Django2.0及以上)
Python 安装
Python 官网 Windows 版本可能下载速度有点慢,慢慢等。不推荐安装最新版,坑多。
# 命令提示符中输入 python,查看已经安装的 python 版本
python
Django 安装
安装最新版的 Django 版本
# 安装最新版本的 Django
pip install django
# 或者指定安装版本
pip install django == 2.2.5
查看 Django 是否已经成功安装:
#查看 Django 版本
python -m django --version
到目前为止,基本环境已经搭建好了.
Python 和 Django 版本对应表
Django version |
Python versions |
---|---|
1.8 |
2.7, 3.2, 3.3, 3.4, 3.5 |
1.9, 1.10 |
2.7, 3.4, 3.5 |
1.11 |
2.7, 3.4, 3.5, 3.6 |
2.0 |
3.5+ |
三、步骤详解
3.1 创建项目
django-admin startproject mysite_login
3.2 设置时区和语言
Django默认使用美国时间和英语,在项目的settings文件中,如下所示:
LANGUAGE_CODE = 'en-us'
TIME_ZONE = 'UTC'
USE_I18N = True
USE_L10N = True
USE_TZ = True
我们把它改为 亚洲/上海时间 和 中文
LANGUAGE_CODE = 'zh-hans'
TIME_ZONE = 'Asia/Shanghai'
USE_I18N = True
USE_L10N = True
USE_TZ = False
3.3 启动 Django 服务
python manage.py runserver
现在,Web 服务器已经成功启动,打开浏览器,在地址栏中输入
http://127.0.0.1:8000/
“127.0.0.1” 是指本地主机,8000 是默认的服务端口,可修改。也可以在地址栏输入 localhost:8000 访问项目。
3.4 创建 Django APP
在 Django 中的 APP 相当于一个功能模块,与其他的 Web 框架可能有很大的区别,将不同功能放在不同的 APP 中,方便代码的复用。
python manage.py startapp login
3.5 新建模板文件夹存放网页
在 login 目录下创建一个 templates 文件夹,并在该文件夹中创建一个 hello.html 文件,用于展示的网页内容。
index.html 文件内容如下(直接复制粘贴到你的 index.html 文件中即可):
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Hello,Django!</title>
<style type="text/css">
html {
width: 100%;
height: 100%;
overflow: hidden;
font-style: sans-serif;
}
body {
width: 100%;
height: 100%;
font-family: 'Open Sans', sans-serif;
margin: 0;
background-color: #FF8080;
}
#login {
position: absolute;
top: 50%;
left: 50%;
margin: -150px 0 0 -150px;
width: 300px;
height: 300px;
}
#login h1 {
color: #fff;
text-shadow: 0 0 10px;
letter-spacing: 1px;
text-align: center;
}
h1 {
font-size: 2em;
margin: 0.67em 0;
}
input {
width: 278px;
height: 18px;
margin-bottom: 10px;
outline: none;
padding: 10px;
font-size: 13px;
color: #fff;
text-shadow: 1px 1px 1px;
border-top: 1px solid #312E3D;
border-left: 1px solid #312E3D;
border-right: 1px solid #312E3D;
border-bottom: 1px solid #56536A;
border-radius: 4px;
background-color: #2D2D3F;
}
.but {
width: 300px;
min-height: 20px;
display: block;
background-color: #4a77d4;
border: 1px solid #3762bc;
color: #fff;
padding: 9px 14px;
font-size: 15px;
line-height: normal;
border-radius: 5px;
margin: 0;
}
</style>
</head>
<body>
<div id="login">
<h1>Hello,My First Django!</h1>
</div>
</body>
</html>
3.6 添加新建的APP
在 mysite_login/mysite_login/settings.py 文件,INSTALLED_APP 下 , 添加以下代码:
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'login', # 在这里添加这一行代码
]
3.7 配置视图函数
在 mysite_login/login/views.py 文件,添加以下代码:
from django.shortcuts import render
# Create your views here.
# 添加 hello 函数,返回 hello.html 页面
def hello(request):
return render(request, 'hello.html')
3.8 添加路由
在 mysite_login/mysite_login/urls.py 文件,添加以下代码:
from django.contrib import admin
from django.urls import path
from login import views # 在这里添加这一行代码,导入 views
urlpatterns = [
path('/admin/', admin.site.urls),
path('', views.hello), # 在这里添加这一行代码,这是我们上一步编写的视图函数的路由,默认是 / 路径
]
3.9 重启服务查看
完成以上步骤后,在命令行执行 python manage.py runserver 启动 Django 的 Web 服务器,在浏览器中访问 127.0.0.1:8000
四、总结
django-admin.py startproject myweb #创建项目
python manage.py startapp myapp #创建 app
python manage.py runserver #启动 Django 中的开发服务器
python manage.py -h #帮助文档
python manage.py <command> [options] #Django 命令
- Go语言按字节截取字符串的方法
- Go语言中字符串的查找方法小结
- 优化算法——遗传算法
- 每秒执行6000的简单SQL优化(一)(r10笔记第62天)
- 【Go 语言社区】在golang里实现类似try catch 的异常处理机制
- 每秒执行6000的简单SQL优化(二) (r10笔记第65天)
- 【Go 语言社区】GO语言练习:网络编程 ICMP 示例
- Golang的json操作
- 【Go 语言社区】golang协程——通道channel阻塞
- Oracle 12c PDB中碰到的DG问题 (r10笔记第63天)
- 上线必备 | 高性能ES5.X部署配置清单
- 【Go 语言社区】go 学习中遇到一些语法问题
- Elasticsearch全文检索实战小结——复盘我带的第二个项目
- 当12C PDB遇上JDBC (r10笔记第59天)
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法