Python后台开发Django的教程详解(启动)


Posted in Python onApril 08, 2019

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/

目录介绍

工程目录结构

Python后台开发Django的教程详解(启动)

无APP的测试页面

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

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

from django.contrib import admin
from django.urls import path
#新建处理方法
from django.shortcuts import HttpResponse
def homex(requestx):
 return HttpResponse("东小东【dongxiaodong】")

urlpatterns = [
 path('admin/', admin.site.urls),
 path("dong",homex),#添加URL对应关系
]

创建APP及基本操作

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

python manage.py startapp dongapp2

APP的目录结构

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

admin.py     #Django的后台管理页

models.py   #创建数据库结构

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

views.py   #业务代码

tests.py    #单元测试

路由对应方法(FBV):

在dongapp2/ views.py

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

在urls.py

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

路由对应类(CBV)

在dongapp2/ views.py

from django.views import View
from django.shortcuts import HttpResponse
from django.shortcuts import render #导入
class DongClass(View):
 def get(self,requestx):#当请求为get时进入
  #return HttpResponse(requestx.GET.get("gdax","无数据"))
  return render(requestx, "loginx.html", {"dongx": 12}) # 返回文件
 def post(self,requestx):#当请求为POST时进入
  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中,设置静态文件存放位置

Python后台开发Django的教程详解(启动)

在模板HTML文件中使用

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

数据获取相关

表单提交测试:

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

Python后台开发Django的教程详解(启动)

获取访问数据

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

响应头设置

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

复选框测试:

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

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

复选框

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

文件上传

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

总结

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

Python 相关文章推荐
使用Python编写简单的端口扫描器的实例分享
Dec 18 Python
python分析作业提交情况
Nov 22 Python
Python浅复制中对象生存周期实例分析
Apr 02 Python
python实现指定字符串补全空格、前面填充0的方法
Nov 16 Python
Python 运行.py文件和交互式运行代码的区别详解
Jul 02 Python
python matplotlib库绘制散点图例题解析
Aug 10 Python
解决pycharm启动后总是不停的updating indices...indexing的问题
Nov 27 Python
Python中sorted()排序与字母大小写的问题
Jan 14 Python
python操作yaml说明
Apr 08 Python
Windows下pycharm安装第三方库失败(通用解决方案)
Sep 17 Python
python基于pygame实现飞机大作战小游戏
Nov 19 Python
pytorch训练神经网络爆内存的解决方案
May 22 Python
Python3利用print输出带颜色的彩色字体示例代码
Apr 08 #Python
Python定义函数功能与用法实例详解
Apr 08 #Python
详解Python中pandas的安装操作说明(傻瓜版)
Apr 08 #Python
Python下简易的单例模式详解
Apr 08 #Python
Python字符串的常见操作实例小结
Apr 08 #Python
Python面向对象程序设计多继承和多态用法示例
Apr 08 #Python
python仿抖音表白神器
Apr 08 #Python
You might like
PHP性能优化 产生高度优化代码
2011/07/22 PHP
ThinkPHP中数据操作案例分析
2015/09/27 PHP
php版阿里大于(阿里大鱼)短信发送实例详解
2016/11/30 PHP
laravel实现简单用户权限的示例代码
2019/05/28 PHP
PHP实现单条sql执行多个数据的insert语句方法
2019/10/11 PHP
收集的网上用的ajax之chat.js文件
2007/04/08 Javascript
可恶的ie8提示缺少id未定义
2014/03/20 Javascript
JavaScript取得WEB安全颜色列表的方法
2015/07/14 Javascript
初步使用Node连接Mysql数据库
2016/03/03 Javascript
JavaScript操作 url 中 search 部分方法函数
2016/06/15 Javascript
轮播图组件js代码
2016/08/08 Javascript
JS获取指定月份的天数两种实现方法
2018/06/22 Javascript
解决vue项目nginx部署到非根目录下刷新空白的问题
2018/09/27 Javascript
React Hooks的深入理解与使用
2018/11/12 Javascript
JavaScript 作用域实例分析
2019/10/02 Javascript
微信小程序scroll-view的滚动条设置实现
2020/03/02 Javascript
JavaScript检测是否开启了控制台(F12调试工具)
2020/10/02 Javascript
[02:23]2014DOTA2国际邀请赛中国战队回顾
2014/08/01 DOTA
Python中元组,列表,字典的区别
2017/05/21 Python
python实现杨辉三角思路
2017/07/14 Python
python 实现UTC时间加减的方法
2018/12/31 Python
实例讲解Python中浮点型的基本内容
2019/02/11 Python
Python django搭建layui提交表单,表格,图标的实例
2019/11/18 Python
将labelme格式数据转化为标准的coco数据集格式方式
2020/02/17 Python
Django 用户登陆访问限制实例 @login_required
2020/05/13 Python
如何使用 Flask 做一个评论系统
2020/11/27 Python
HTML5+CSS3 诱人的实例:3D立方体旋转动画实例
2016/12/30 HTML / CSS
HTML5在a标签内放置块级元素示例代码
2013/08/23 HTML / CSS
Why we need EJB
2016/10/20 面试题
电信专业应届生自荐信
2013/09/28 职场文书
初中生三年学习生活的自我评价
2013/11/03 职场文书
会计电算化个人求职信范文
2014/01/24 职场文书
元旦主持词开场白
2015/05/29 职场文书
2016教师校本培训心得体会
2016/01/08 职场文书
《秦兵马俑》教学反思
2016/02/24 职场文书
我收到了德劲DE1107
2022/04/05 无线电