Python后台开发Django的教程详解(启动)
作者:东小东 发布时间:2023-03-25 19:00:10
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
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中,设置静态文件存放位置
在模板HTML文件中使用
<link rel="stylesheet" href="static/dong.css" rel="external nofollow" >
数据获取相关
表单提交测试:
在setting.py中注释掉下面一句,即可通过表单添加【action="dong"】进行数据提交,如果不注释需参考CSR保护
获取访问数据
#控制台输出所有的请求信息
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的教程详解(启动)网站的支持!
来源:https://www.cnblogs.com/dongxiaodong/p/10496525.html


猜你喜欢
- 网上大部分教程都写的直接关闭界面,我摸索出来一个方法:同时绑定两个事件例:#自己方法self.registerButton.clicked.
- jupyter notebook非常方便,想在服务器上面搭建一个,但是访问不了。(一)首先是安装jupyter notebook,pip i
- 目录一、字典概念二、字典操作(一)创建字典1、先创建空字典,再添加元素(键值对)2、直接创建包含若干键值对的字典(二)字典操作1、读取字典元
- 本文实例讲述了Python中subprocess模块用法。分享给大家供大家参考。具体如下:执行命令:>>> subproc
- 在MySQL 5.6.6之前,TIMESTAMP的默认行为:■TIMESTAMP列如果没有明确声明NULL属性,默认为NOT NULL。(而
- 命令行执行Python脚本的传参应用场景在对ABAQUS进行二次开发时,需要将核心脚本的外部数据传递到脚本内部并执行核心脚本在运行时,可以调
- 当讨论Request对象内容时,要研究的集合之一就是ServerVariables集合。这个集合包含了两种值的结合体,一种是随同
- 在我们常用的系统windows和Linux系统中有很多支持的压缩包格式,包括但不限于以下种类:rar、zip、tar,以下的标准库的作用就是
- 1、背景介绍在采用通常的socket抓包方式下,操作系统会自动将收到包的VLAN信息剥离,导致上层应用收到的包不会含有VLAN标签信息。而l
- 1. 配置并更新树莓派系统sudo raspi-config // 进入后打开摄像头、SSHsudo apt-get updatesudo
- 源码:from pyecharts import Barimport reimport requestsnum=0b=[]for i in
- 打印整数16进制num=10print('%#x'%num)打印字符串中的16进制arr='12342535'
- 前言:今天和大家分享自己总结的6个常用的Pandas数据处理代码,对于经常处理数据的coder最好熟练掌握。选取有空值的行在观察数据结构时,
- declare @name varchar(50)exec sp_executesql N'select @value=姓名 fro
- 引用了jQuery,节省了很多鼠标点击上的判断。界面显然都是照搬Windows的扫雷啦,详细的内容注释里都有,我就不啰嗦啦~先上截图~引用了
- SQLPrompt是Sql Server 开发智能提示插件,方便查询表结果,避免了开发人员一个个敲查询语句、执行语句等,下面带大家仔细了解一
- 下面列出了asp远程网页数据采集程序中经常用到的函数,很实用,特别是正则表达式过滤函数。包括了使用xmlhttp采集远程网页内容,使用ado
- 本文实例为大家分享了Python实现打砖块游戏的具体代码,供大家参考,具体内容如下#导入模块import pygamefrom pygame
- nn.RNN(input_size, hidden_size, num_layers=1, nonlinearity=tanh, bias=
- 本文实例讲述了Pytorch实现的手写数字mnist识别功能。分享给大家供大家参考,具体如下:import torchimport torc