经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 程序设计 » Django » 查看文章
Python后台开发Django的教程详解(启动)
来源:jb51  时间:2019/4/8 12:18:53  对本文有异议

Django版本为:2.1.7

Python的web框架,MTV思想

MVC

Model(模板文件,数据库操作)  view(视图模板文件  )controller(业务处理)

MTV

Model(模板文件,数据库操作)  template(视图模板文件) view(业务处理)

安装及访问

安装

pip3 install django

创建目录

如win:在需要创建目录的文件夹按住shift+鼠标右键打开命令行,创建dongjg工程目录

C:\Users\东东\AppData\Local\Programs\Python\Python37\Scripts\django-admin.exe startproject dongjg

开启服务

其中manage.py需对应工程目录

如果网站需要外部访问还需在工程目录的settings.py文件中设置【ALLOWED_HOSTS = ["*"]】

python manage.py runserver 0.0.0.0:8000

访问测试

http://127.0.0.1:8000/

目录介绍

工程目录结构

无APP的测试页面

在urls.py中添加简单的测试页面

访问:http://127.0.0.1:8000/dong

  1. from django.contrib import admin
  2. from django.urls import path
  3. #新建处理方法
  4. from django.shortcuts import HttpResponse
  5. def homex(requestx):
  6. return HttpResponse("东小东【dongxiaodong】")
  7.  
  8. urlpatterns = [
  9. path('admin/', admin.site.urls),
  10. path("dong",homex),#添加URL对应关系
  11. ]

创建APP及基本操作

可以实现多个模块效果,如后台管理、用户登入等

python manage.py startapp dongapp2

APP的目录结构

migrations文件夹    #数据库操作记录(表结构修改记录)

admin.py     #Django的后台管理页

models.py   #创建数据库结构

apps.py   #当前app的配置文件

views.py   #业务代码

tests.py    #单元测试

路由对应方法(FBV):

在dongapp2/ views.py

  1. from django.shortcuts import HttpResponse
  2. def homex(requestx):
  3. return HttpResponse("东小东【dongxiaodong】")

在urls.py

  1. from django.contrib import admin
  2. from django.urls import path
  3. from dongapp2 import views
  4. urlpatterns = [
  5. path('admin/', admin.site.urls),
  6. path("dong",views.homex),#添加URL对应关系
  7. ]

路由对应类(CBV)

在dongapp2/ views.py

  1. from django.views import View
  2. from django.shortcuts import HttpResponse
  3. from django.shortcuts import render #导入
  4. class DongClass(View):
  5. def get(self,requestx):#当请求为get时进入
  6. #return HttpResponse(requestx.GET.get("gdax","无数据"))
  7. return render(requestx, "loginx.html", {"dongx": 12}) # 返回文件
  8. def post(self,requestx):#当请求为POST时进入
  9. return HttpResponse(requestx.POST.get("user","无数据"))

在urls.py

path("cdong",views.DongClass.as_view()),

 静态文件(static)

存放一些css样式、图片、js代码等

外部访问访问:http://127.0.0.1:8000/static/img/an.png

在setting.py中,设置静态文件存放位置

在模板HTML文件中使用

  1. <link rel="stylesheet" href="static/dong.css" rel="external nofollow" >

数据获取相关

表单提交测试:

在setting.py中注释掉下面一句,即可通过表单添加【action="dong"】进行数据提交,如果不注释需参考CSR保护

获取访问数据

  1. #控制台输出所有的请求信息
  2. for k,v in requestx.environ.items():
  3. print(k,"----->",v)
  4. print("你的设备基本信息:",requestx.environ.get("HTTP_USER_AGENT","w"))
  5. print("你的IP地址:",requestx.environ.get("REMOTE_ADDR","w"))
  6. xx=requestx.path_info #获取url,如http://127.0.0.1:8000/x1/x2/xxxxcd3,输出:/x1/x2/xxxxcd3
  7. methodx = requestx.method #得到访问方式,输出:GET POST
  8. #userx1=requestx.POST["user"] #获取POST值,如果name不存在会报错
  9. userx2=requestx.POST.get("user","xxx") #获取POST值,如果不存在则输出xxx

响应头设置

  1. # 本地页面跳转
  2. from django.shortcuts import redirect # 导入
  3. retx = redirect("dong/")
  4. # 返回文件,并匹配值
  5. from django.shortcuts import render #导入
  6. retx= render(requestx, "loginx.html",{"dongkk1":"替换值1","dongkk2":"替换值2"})
  7. #返回字符串
  8. from django.shortcuts import HttpResponse
  9. retx=HttpResponse("东小东【dongxiaodong】")
  10. #设置响应头
  11. retx["tttt"]="tttvvvvv"
  12. return retx

复选框测试:

获取数据,获取数据到一个列表中

listx=requestx.POST.getlist("boxd")

复选框

  1. <input type="checkbox" name="boxd" value="1xx" >选项1
  2. <input type="checkbox" name="boxd" value="xx2" >选项2
  3. ……..

文件上传

  1. fileobjx=requestx.FILES.get("dongfile")#得到文件对象
  2. filenamex=fileobjx.name#得到文件名
  3. filesize=fileobjx.size#文件大小
  4. f=open("static/img/"+filenamex,"wb")#创建新文件保存数据
  5. for datax in fileobjx.chunks():#接收数据,可以不用写.chunks(),默认会调用
  6. f.write(datax)
  7. f.close()

总结

以上所述是小编给大家介绍的Python后台开发Django的教程详解(启动),希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对w3xue网站的支持!

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号