十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
本篇内容主要讲解“Django怎么配置使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Django怎么配置使用”吧!
成都创新互联专注为客户提供全方位的互联网综合服务,包含不限于成都网站设计、成都网站建设、枝江网络推广、微信小程序开发、枝江网络营销、枝江企业策划、枝江品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们最大的嘉奖;成都创新互联为所有大学生创业者提供枝江建站搭建服务,24小时服务热线:18980820575,官方网址:www.cdcxhl.com
使用pip安装: pip install Django
1)创建django程序
a. 终端命令: django-admin startproject mysite , IDE创建django程序时,本质上都是自动执行上述命令
2)目录结构如下:

3)配置文件 -- (settings.py)
a. 数据库

b. 模板

c. 静态文件

a. 命令
python manage.py startapp cmdb

b. cmdb 目录结构如下:

4. 登录实例
a. templates目录下生成html文件,如login.html
登录
b. 修改url文件,定义路由规则
from django.contrib import admin from django.conf.urls import url from cmdb import views urlpatterns = [ url(r'^admin/', admin.site.urls), url(r'^login/', views.login), ]
c. 定义视图函数:app下views.py
from django.shortcuts import render
from django.shortcuts import HttpResponse
from django.shortcuts import redirect
# Create your views here.
USER_LIST = {}
def login(request):
if request.method == 'GET': #判断请求方式
return render(request, 'login.html')
elif request.method == 'POST':
user = request.POST.get('user') #post请求,单选、输入框获取值
pwd = request.POST.get('pwd')
sex = request.POST.get('sex')
if user and pwd:
USER_LIST['name'] = user
USER_LIST['pwd'] = pwd
USER_LIST['sex'] = sex
return render(request, 'success.html', {"user_list": USER_LIST})
else:
return HttpResponse('请求不能为空')
else:
return HttpResponse('请求方式不是get\post') #HttpResponse("字符串")d. 提交成功后,success.html页面 取值, hmtl模板获取 字典数据
登录成功页面 {{ user_list.name}} #获取字典中某个key的值
e. 通过浏览器访问: http://127.0.0.1:8000/login/ ,显示login.html登录页面,输入登录信息,登录成功后,获取的数据如下

总结:通过上面的例子,我们可以知道django的生命周期:
---->URL对应关系(匹配) --->视图函数 --->返回用户字符串
----> URL对应关系(匹配) --->视图函数 --->打开一个HTML文件,读取内容
5. 其他
request.GET.get('',None) #获取get请求发来的数据
request.POST.get('',None) #获取post请求发来的数据
return render(request, 'HTML模板的路径')
return redirect('只能填写URL')对应多选框、上传文件怎么获取值呢?
a. 多选框,html格式如下:
multiple="multiple" 表示多选
views 视图页面:
city = request.POST.getlist('city')页面访问结果:

b. 上传文件
主要方法
文件对象 = request.FILES.get('xx')
文件名 = 文件对象.name
文件大小 = 文件对象.size
文件内容 = 文件对象.chunks()html格式, form表单需要添加属性:
enctype="multipart/form-data"
views视图:
# 上传文件
upload_file_obj = request.FILES.get('upload')
print(type(upload_file_obj), upload_file_obj) # 2.jpg
#保存上传的文件到upload目录
upload_path = os.path.join('upload', upload_file_obj.name)
fw = open(upload_path, 'wb')
for line in upload_file_obj.chunks(): #chunks表示所有的数据库,是个迭代器
fw.write(line)
fw.close() 页面访问结果:

最终的views代码:
from django.shortcuts import render
from django.shortcuts import HttpResponse
from django.shortcuts import redirect
import os
# Create your views here.
USER_LIST = {}
def login(request):
if request.method == 'GET': #判断请求方式
return render(request, 'login.html')
elif request.method == 'POST':
user = request.POST.get('user') #post请求,单选、输入框获取值
pwd = request.POST.get('pwd')
sex = request.POST.get('sex')
#多选获取值
city = request.POST.getlist('city')
# 上传文件
upload_file_obj = request.FILES.get('upload')
print(type(upload_file_obj), upload_file_obj) # 2.jpg
#保存上传的文件到upload目录
upload_path = os.path.join('upload', upload_file_obj.name)
fw = open(upload_path, 'wb')
for line in upload_file_obj.chunks(): #chunks表示所有的数据库,是个迭代器
fw.write(line)
fw.close()
if user and pwd:
USER_LIST['name'] = user
USER_LIST['pwd'] = pwd
USER_LIST['sex'] = sex
USER_LIST['city'] = city
USER_LIST['file'] = upload_file_obj.name
return render(request, 'success.html', {"user_list": USER_LIST})
else:
return HttpResponse('请求不能为空')
else:
return HttpResponse('请求方式不是get\post') #HttpResponse("字符串") 简单例子如下:
a. 修改url文件,定义路由规则
urlpatterns = [ # url(r'^admin/', admin.site.urls), # url(r'^login/', views.login), url(r'^index/', views.index), url(r'^detail/', views.detail), ]
b. 视图 views
USER_DICT = {
"1": {"name": "root1", "email": "qwe1@163.com"},
"2": {"name": "root2", "email": "qwe2@163.com"},
"3": {"name": "root3", "email": "qwe3@163.com"},
"4": {"name": "root4", "email": "qwe4@163.com"},
}
def index(request):
return render(request, 'index.html', {"user_dict":USER_DICT})c. 模板 index.html ,循环字典信息
点击任意信息可跳转到detail?nid=x页面,获取详细信息
index
d. 浏览器访问 http://127.0.0.1:8000/index/, 页面如下:

e. 点击页面上任意信息,可以跳转到detail详细页面, detail页面的views视图
def detail(request):
nid = request.GET.get('nid') #get请求方式,或者到nid的值,即USER_DICT的key
detail_info = USER_DICT[nid]
return render(request, 'detail.html', {"detail_info": detail_info})f. detail.html模板信息如下:
详情页面 详细信息
用户名:{{ detail_info.name }} 邮箱:{{ detail_info.email }}
g. 点击root2超链接,跳转到另一个页面,如下:

以上 上方的detail页面get请求时,使用的形式是 http:127.0.0.1:80/detail?nid=x 方式,nid的是动态获取,若觉得改方式比较low,可以更改为以下方式:
http://127.0.0.1:80/detail-x.html
a. url的优化写法

b.views的优化写法

c. html模板的优化写法

d. 浏览页面访问效果

8. 若urls进行了变更,那么涉及的urls也需要改动,多次变更后,可能修改就会有遗漏,有什么高效的解决方法吗?
a. 找到urls.py文件,修改路由规则
# url(r'detail/', views.detail), # url(r'detail-(\d+).html/', views.detail), #正则表达式 url(r'detail-(\d+).html/', views.detail, name='detail_name'), #正则表达式
b, 找到views文件,进行修改
def index(request):
# return HttpResponse('index')
return render(request, 'index.html', {"user_dict": USER_DICT})
# def detail(requerst):
# nid = requerst.GET.get('nid')
# detail_info = USER_DICT[nid]
# return render(requerst, 'detail.html', {"detail_info": detail_info})
def detail(requerst,nid): # nid指定的是(\d+)里的内容
detail_info = USER_DICT[nid]
return render(requerst, 'detail.html', {"detail_info": detail_info})c. 在templates目录下的index.html
字典循环获取 {{ user_dict.KEY1 }}
到此,相信大家对“Django怎么配置使用”有了更深的了解,不妨来实际操作一番吧!这里是创新互联网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!