实训的时候就想着学一下python web开发,一直到上周才过了一遍基础知识,对python基础学习之后,还有很多进阶的地方没有去学习,只有在实战中一边学习新的技术,一边去练习基础知识吧,就和李老师说的一样,把基础教程当做字典去查,而不是一个字的去背他。
简单介绍一下Django ,Django是python web 开发的框架,用于web开发的工作,与Java中的 spring框架类似,安装环境与部署,这里就不说了,开始我们的第一个实例的部署吧。
一 MVT 开发模式
Django 根据MTV开发模来进行开发,我们可能听说过Java开发的 MVC 模式,具体流程是类似的,语言只是一个媒介,就和英语中的 cat 和我们说的‘猫’是一个意思的,语言不同,所做的事情确实一样的。
- M:models 模型 (主要是处理数据库的工作,组织和存储数据的方法和模式)
- T:Templates 模板 (主要是负责网页界面,用于定义表现风格)
- V:Views 视图(负责前后端的交互,针对请求选取数据的功能)
开发模式示意图
MTV开发模式我们会在以后的学习中逐渐加深对他的认识。
实例一 云端留言板的开发
创建项目工程
首先在你的工作目录内创建一个项目工程,可以使用Django自带的创建命令:
Django-admin startproject clounds
创建完成之后,你可以在pycharm 中看见一下工程目录:
目录中的各项解释:
目录中_int_.py 与 wsgi.py 是不需要我们进行修改配置的,settings.py属于设置文件,可以配置模板地址等。urls.py是路由文件。
创建一个APP
APP 是工程下的一个具体应用,就好比淘宝网中的商品排行界面,或者登陆界面就是两个APP
可以使用以下命令创建
python manage.py startapp mgasapp
目录结构:
这里可以看到新创建的APP中与工程目录有很多相似的地方,我们目前需要注意的只有 templates、urls.py views.py ,分别控制模板,本地路由,以及交互的内容。
明白每个目录基本的功能就开始进行实例的开发了。
开发步骤:
- 创建工程
- 创建APP
- 设置前端模板代码
- 设置路由(本地路由以及全局路由)
- 编写交互代码
第一步与第二,我们前面已经讲解了,我们从模板开始。
首先在APP目录下新建目录templates,用来放前端代码 m.html:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>云端留言板(1)首页</title>
</head>
<body>
<h1>提交留言功能</h1>
<form action="/msggate/" method="post">
{% csrf_token %}
发送方<input type="text" name="userA"/><br>
接收方<input type="text" name="userB"/><br>
消息文<input type="text" name="msg"/><br>
<input type="submit" value="提交留言">
</form>
<h1>获取留言功能</h1>
<form action="/msggate/" method="get">
接收方<input type="text" name="userC"/><br/>
<input type="submit" value="留言接受">
</form>
<table border="1">
<thead>
<th>留言时间</th>
<th>留言来源</th>
<th>留言信息</th>
</thead>
<br>
<tbody>
{% for line in data %}
<tr>
<td>{{ line.time }}</td>
<td align="center">{{ line.userA }}</td>
<td>{{ line.msg }}</td>
</tr>
{% endfor %}
</tbody>
</table>
</body>
</html>
2,设置路由
路由需要设置本地路由和全局路由,本地路由是在APP目录下新建一个 urls.py的文件,用来联系交互界面,将views界面编写的函数调用到网页中。
from django.urls import path
from . import views
urlpatterns = [
path('', views.msgproc),
]
全局路由设置界面
"""
from django.contrib import admin
from django.urls import include, path
urlpatterns = [
path('admin/', admin.site.urls),
path('msggate/', include('mgsapp.urls'))
]
3.编写交互界面
交互界面使用python,用来连接前端与数据库,是我认为最重要的一部分:
from django.shortcuts import render
from datetime import datetime
# Create your views here.
def msgproc (request):
datalist=[]
if(request.method=="POST"):
userA=request.POST.get("userA",None)
userB=request.POST.get("userB",None)
msg=request.POST.get("msg",None)
time=datetime.now()
with open('msgdata.txt','a+') as f:
f.write("{}--{}--{}--{}--\n".format(userB,userA,msg,time.strftime("%Y-%m-%d %H:%M:%S")))
if(request.method=="GET"):
userC=request.GET.get("userC",None)
if(userC!=None):
with open('msgdata.txt','r') as f:
cnt=0
for line in f:
linedata=line.split('--')
if(linedata[0]==userC):
d={"userA":linedata[1],"msg":linedata[2],"time":linedata[3]}
datalist.append(d)
if(cnt>=10):
break
return render(request,"m.html",{"data":datalist}) ##render函数第三个参数是字典类型,表明向html页面中特定变量赋值
到这里基本的留言板功能机已经实现了,主要是熟悉一下,Django开发的流程,与其基本方法,现在用的开发工具变成了pycharm,本来我一般使用vscode做python的,但是他最web开发不如这个方面,所以就暂时用这个大胖子软件吧。
共同学习,写下你的评论
评论加载中...
作者其他优质文章