Django的一些操作与视图函数
一 . Django的安装
pip install django==1.14.6 # 后面的数字是django的版本
二 . 通过命令行(cmd)来创建Django项目
1. 切换到保存项目的文件夹下 # cd 空格 文件夹名 2. django-admin startproject 项目名称 # 创建一个新项目 3. python manage.py runserver 127.0.0.1:8000 # 启动django项目, 后面的ip地址和端口 4. python manage.py startapp app名字 # 创建App, 可以创建多个
添加完App后,需要在settings文件里面的INSTALLED_APPS后面加上一句话.

如果有多个App 为了避免URL都写在一起看着太乱,需要把各个需要的urls.py文件写到自己的App文件下.
此时在主urls.py文件里面写内容就要有一些变化了.
from django.conf.urls import url,include
from django.contrib import admin
from App01 import views
urlpatterns = [
url(r'^admin/', admin.site.urls,),
url(r'^login/', views.login, name='login'),
url(r'^App01/', include('App01.urls')), # 凡是以App01开头的请求,都去App01.urls里面找.
]
# 但是此时的搜索路径需要以App01开头了, 比如原来搜索127.0.0.1:8000/login就能找到login页面,
但是如果这个login的url在App01的文件里 就需要写成 127.0.0.1:8000/App01/login 这样才能找到login页面
URL的别名应用

# 上述操作是在HTML文件中进行的,a标签也是这样做的, 但是在视图(views)里面的渲染就不一样啦.

namespace的用法

crm里面url的写法

app01里面url的写法

crm视图函数

三 . 通过pycharm来创建django项目
打开pycharm-->File-->NewProject-->Django
四 . 传参方式
# login后面用括号括起来的是是参数,而且必须用括号括起来,
在视图里面的函数必须用一个形参来接收

五 . CBV与FBV
FBV(function base views) 在视图里面写函数就是FBV(常用的)
CBV(class base views) 在视图里面写类, 同时urls.py里面也和FBV不一样(基本用不到)
CBV 的本质也是FBV 先实例化,执行view方法,然后执行里面的dispatch方法,dispatch方法通过反射可以拿到get或者post然后去执行函数
# path拿到的是不带参数的路径, get_full_path拿到的是带参数的路径
request.path 拿到的路径是/index/
request.get_full_path() 拿到的路径是 /index/?page=1
# 写在视图里面的
class Myd(View): def get(self,request,*args, **kwargs):
print('get方法执行了')
return render(request,'cvpost.html',{'name':self.name}) def post(self,request,n):
print('post方法被执行了')
return HttpResponse('post')
# urls.py
from django.conf.urls import url
from myapp.views import MyView #引入我们在views.py里面创建的类 urlpatterns = [
url(r'^index/$', MyView.as_view()), # as_view()这个方法拿到的是view函数然后去u执行
]
# 传参
url(r'^cv/(\d{2})/', views.Myd.as_view(),name='cv'),
CBV加装饰器
我们在给类方法加装饰器的时候,他不同于函数直接写在上面就可以,我们要先将其转化为方法装饰器.
Django中提供了method_decorator装饰器用于函数装饰器转化为方法装饰器
from django.views import View
from django.utils.decorators import method_decorator class AddClass(View): @method_decorator(wrapper) #这个wrapper就是定义的装饰器
def get(self, request):
return render(request, "add_class.html") def post(self, request):
class_name = request.POST.get("class_name")
models.Classes.objects.create(name=class_name)
return redirect("/class_list/")
给CBV加装饰器的方法有三种
# 第一种方法
class AddClass(View): @method_decorator(wrapper)
def get(self, request):
return render(request, "add_class.html") # 直接写在方法上面
# 第二种方法,写在类上面,但是需要指定给谁加 name=谁
@method_decorator(wrapper, name='get')
class AddClass(View): def get(self, request):
return render(request, "add_class.html")
# 第三种方法, dispatch方法
from django.utils.decorators import method_decorator @method_decorator(wrapper)
def dispatch(self, request, *args, **kwargs):
return super().dispatch(request, *args, **kwargs) # 自己定义一个dispatch方法,这个方法是无论get还是post方法都被加上装饰器
六 . 浏览器的八种请求方式
http_method_names = ['get', 'post', 'put', 'patch', 'delete', 'head', 'options', 'trace']
七 . request后面的属性与方法
request.POST/GET/method/COOKIES/session/FILES/path/get_full_path/META/body
Django的一些操作与视图函数的更多相关文章
- 第三百零五节,Django框架,Views(视图函数),也就是逻辑处理函数里的各种方法与属性
Django框架,Views(视图函数),也就是逻辑处理函数里的各种方法与属性 Views(视图函数)逻辑处理,最终是围绕着两个对象实现的 http请求中产生两个核心对象: http请求:HttpRe ...
- 三 Django框架,Views(视图函数),也就是逻辑处理函数里的各种方法与属性
Django框架,Views(视图函数),也就是逻辑处理函数里的各种方法与属性 Views(视图函数)逻辑处理,最终是围绕着两个对象实现的 http请求中产生两个核心对象: http请求:HttpRe ...
- Python Django CBV下的通用视图函数
ListView TemplateView DetailView 之前的代码实例基本上都是基于FBV的模式来撰写的,好处么,当然就是简单粗暴..正如: def index(request): retu ...
- django url配置-反向解析-视图函数-HttpRequest对象-HttpResponse对象-cookies-session-redis缓存session
""" --视图概述:-- 作用:视图接受WEB请求,并响应WEB请求 本质:视图就是一个python中的函数 响应: 1.网页: 一.重定向 二.错误视图 400,50 ...
- django创建app、在视图函数及url中使用参数、url命名、通过redirect实现网页路径跳转
app用来实现一个独立的功能,视图一般都写在app的view.py中,并且视图的第一个参数永远是request,视图的返回值必须是HttpResponseBase对象或子类的对象. 创建一个app:f ...
- Django路由配置系统,视图函数
一.路由配置系统(URLconf) URL配置(URLconf)就像Django 所支撑网站的目录.它的本质是URL与要为该URL调用的视图函数之间的映射表:你就是以这种方式告诉Django,对于这个 ...
- Django路由配置系统、视图函数
一.路由配置系统(URLconf) URL配置(URLconf)就像Django 所支撑网站的目录.它的本质是URL与要为该URL调用的视图函数之间的映射表:你就是以这种方式告诉Django,对于这个 ...
- 简单的django登录项目---带views视图函数(脚本文件)---用Bootstrap
简单的django登录项目 1.首先建立工程,建立工程请参照:https://www.cnblogs.com/effortsing/p/10394511.html 2.在Firstdjango工程项目 ...
- Django中使用Bootstrap----带view.py视图函数(也就是项目下的脚本文件)
一.Django中使用Bootstrap 1.首先建立工程,建立工程请参照:https://www.cnblogs.com/effortsing/p/10394511.html 2.在Firstdja ...
随机推荐
- 假设在本地搭一个server和mysql数据库环境,假设使用java来訪问数据库
我们能够使用speedamp来搭一个server环境,能够在http://download.csdn.net/detail/baidu_nod/7630265下载 解压后无需安装直接能够使用.点击Sp ...
- P1460 健康的荷斯坦奶牛 Healthy(DFS)
思路:这道题还是用了小小的剪枝,这里要注意的是该题有很多中构建树的顺序,但是,在这众多顺序中不一定都能保证输出的方案字典序最小. 构建搜索树:如图构建 剪枝,emmm,看代码: #include< ...
- Python:Day19 正则表达式补充
贪婪匹配 贪婪匹配是指字符后面是*+?的时候,都是尽可能多的匹配,如果不想尽可能多的匹配,那么在这三个字符后面加?号即可,这样变成惰性匹配,按最少匹配. ret = re.findall('ab??' ...
- 2018Action Recognition from Skeleton Data via Analogical Generalization over Qualitative Representations
论文标题: 来源/作者机构情况: Northwestern University Thirty-Second AAAI Conference on Artificial Intelligence, 2 ...
- BZOJ1064 NOI2008 假面舞会 图论
传送门 将一组关系\((A,B)\)之间连一条边,那么显然如果图中存在环长为\(len\)的环,那么面具的种数一定是\(len\)的因数. 值得注意的是这里环的关系除了\(A \rightarrow ...
- 比官方文档更易懂的Vue.js教程!包你学会!
欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由蔡述雄发表于云+社区专栏 蔡述雄,现腾讯用户体验设计部QQ空间高级UI工程师.智图图片优化系统首席工程师,曾参与<众妙之门> ...
- python--map()、reduce()
map()和reduce()是一种在处理大数据时的重要思想,在平时也可以利用.在python中内置了这两个方法,map取映射的意思,reduce取归纳的意思. 一.map() map(func, ls ...
- 第十五次oo作业
作业十五 测试与正确性论证的效果差异 程序的测试需要通过输入特定数据等方式,检查程序是否和预期相同,因为测试不可能穷举,导致了不穷举的测试不可能验证程序是完全正确的,只能验证程序在测试时没有发生错误, ...
- Can’t connect to local MySQL server through socket 原因解析
在连接mysql的时,经常会出现以下错误提示: ERROR (HY000): Can't connect to local MySQL server through socket '/var/lib/ ...
- Python_迭代器和生成器的复习_38
迭代器和生成器 迭代器: 双下方法:很少直接调用的方法,一般情况下,是通过其他方法触发的 可迭代的协议——可迭代协议 含有__iter__ 的方法 ('__iter__' in dir(数据)) 可迭 ...