最近突然有了个idea:想用python做一个小的web项目;从产生想法到完成调试,部署到阿里云服务器上,差不多花了一个多星期的零碎时间,在这过程中遇到了很多问题,同时也收获了诸多trick,故将此记录下来,是学习,亦是分享(写给自己和web小白,大神止步)……
1. Idea
2. 开始干活
题外话:以前也学过点web开发,包括:PHP,JS,HTML5,CSS,Photoshop(用来确定网页中各个元素的比例和尺寸),曾经有一段时间觉得只要给一张网页的图片和基本素材,我都做得出来(有点膨胀哈),But现,在基本都忘的差不多了~~ 这次是想用python做后台,查了点资料后,准备用django框架。不像PHP,需要自己准备一个调试的服务器:本地装tomcat,或者我经常用的是XAMPP(集成了Tomcat,mysql等openSource soft),django真的强,连debug用的服务器都带了(write less,do more),刚开始还有点不习惯,总觉得缺点啥~~
正题:
-
python version:3.7.1
-
django version:2.0.13
django简介:一个用python写的web开发框架,把浏览器与服务器通的信工作,数据库连接等可以抽象的任务全部都打包完成,设计目的是使常见的web开发任务变得快速而简单。(web小白暂时知道这些就行)
以下工作均在控制台完成!!!
django安装:
pip3 install django==2.0.13
创建django项目:
django-admin startproject myProject
此时项目’myProject’在当前目录下就被创建好了
进入‘myProject’目录,可以看到有一个‘manage.py‘文件和一个‘myProject‘的子目录,以后管理django项目,都需要和‘manage.py’这个文件打交道,不过不需要对其做任何改动
开启项目:
python manage.py runserver 127.0.0.1:8000
其中,127.0.0.1:8000,分别指的是服务器ip和端口号,默认就是127.0.0.1:8000,可以不写,也可以根据自己的需要进行修改
如果出现上图所示的提示,恭喜,django项目已经跑起来了,打开浏览器,输入:http://127.0.0.1:8000(或者你自己设置的端口号),可以看到下图:
ps:Ctrl +c 可以停掉服务
django框架帮我们做的事已经做完了,够简单吧!!
现在的问题是如何把自己的web项目移植到django框架中,那么我们就需要遵守django框架的规则了
下面稍微了解点django框架的工作模式:
django的工作模式一般称为MTV:
- Model:映射数据库结构,数据库中的一张表在model里映射为一个类
- Template:控制具体要显示给用户的HTML页面
- View:负责具体的业务逻辑
进入‘myProject’子目录,可以看到这样的目录结构:
- _init_.py:声明当前的文件夹为一个python模块,不需要修改
- settings.py:项目配置文件(时区,静态资源路径,数据库相关配置etc.)
- urls.py:总的路由声明(它就是来指定当你在浏览器输入某个地址后凭啥能找到相应的HTML页面)
- wsgi.py:wsgi服务器配置文件(目前不需要修改)
!!!下面开始着手写我们自己的web项目!!!
创建工作目录:python manage.py startapp myApp
now,在当前路径下,创建了一个名为‘myApp’的目录,妥了,这就是我们的工作目录
进入myApp目录,看到好多文件,but now,只需要了解:
- view.py:Django MTV模式中指的V,负责具体的业务逻辑
- models.py:Django MTV模式中指的M,映射数据库结构
数据库映射有了[models.py],业务逻辑控制有了[views.py],那么:HTML页面放哪?
答:放哪都行……,就看路径如何配置了,不过做项目嘛,还是要遵守一些规则滴,在根(myProject)目录下,创建Templates(叫啥都行,不过这么起名,更能体现Django的工作模式)目录用来存放HTML页面,跟manage.py同级
First:写第一个HTML页面 index.html(放在Templates目录下)
<!DOCTYPE html>
<html lang="cn">
<head>
<meta charset="UTF-8">
<title>myAPP</title>
</head>
<body>
<h1>Hello World, Hello Django!</h1>
</body>
</html>
Now,为了让我们的应用(myApp)和Django框架关联起来,需要去做一些配置了
- 在文件 myProject/myProject/setttings.py 中做如下修改:找到INSTALLED_APPS进行注册,在其中添加自己的应用,本例中即为’myApp’
找到TEMPLATES配置Html的存放路径:
Second:写业务控制逻辑 views.py (不用新建,在myApp目录下有)
from django.shortcuts import render
# Create your views here.
def index(request):
return render(request, 'index.html')
Third:需要让浏览器能找到我们的Html页面在哪,需要进行路由配置,去修改 myProject/myProject/urls.py 文件
from django.contrib import admin
from django.urls import path
from django.conf.urls import include # 新增
urlpatterns = [
path('admin/', admin.site.urls),
path(r'myApp/', include('myApp.urls')) # 新增
]
创建 myProject/myApp/urls.py 文件
from django.conf.urls import include,url
from . import views
urlpatterns = [
url(r'index/', views.index),
]