zoukankan      html  css  js  c++  java
  • django文档总结之基本操作(1)

    基本操作

    基本准备

    终端创建项目:

    django-admin startproject 项目名称
    

    pycharm中选择django创建项目

    ptcharm下终端创建子应用:

    python manage.py startapp users(子应用名)
    

    pycharm下终端项目运行:

    python manage.py runserver (ip端口,默认8000)
    
    setting中的常用配置
    BASE_DIR = 项目在磁盘上存在的目录路径
    
    DEBUG = 是否开启调试模式(开发阶段True开启,上线后False)
    
    MIDDLEWARE = [...csrf...]  # 开启默认csrf保护,测试时需要关闭
    
    LANGUAGE_CODE = 'zh-hans'  # 语言
    
    TIME_ZONE = 'Asia/Shanghai' # 时区
    
    静态文件的处理

    静态文件包括css, images, js

    在项目目录下建立文件夹static,再在此文件夹里建分类文件夹,放静态文件

    setting中参数配置

    STATIC_URL = '/static/'   # 访问静态文件的URL前缀
    
    STATICFILES_DIRS=[        # 存放查找静态文件的目录
    
    	os.path.join(BASE_DIR,'static')
    
    ]
    
    
    问题1:django如何确定请求的是静态文件
    
    	将请求路径与STATIC_URL进行匹配
    
    问题2:django如何在磁盘上找到静态文件
    
    	将STATICFILES_DIRS指定的目录与请求文件路径进行拼接
    
    问题3:Django 仅在调试模式下(DEBUG=True)能对外提供静态文件。
    
    反解析

    解析:根据请求地址,进行路由规则匹配,找到视图函数

    ``反解析:根据视图函数生成一个url地址,users/index

    1 在根级(namespace可以修改)

    url('^users/', include('users.urls', namespace='userss')),
    

    2 在应用级(name名字可以修改)

    url(r'^index2$', views.index, name='indexx'),
    

    3 在应用级views中

    def index2(request):		
    	url_str = reverse('userss:index')
    	return HttpResponse(url_str)    
    

    4 启动地址 http://127.0.0.1:8000/users/index2

    5 应用场景:重定向,超链接

    相应对象,返回json数据

    def json(request):
    
    	return JsonResponse({'a':10,'b':'hello'})
    

    子应用操作

    django的视图函数存放在子应用中

    1 创建子应用:

    python manage.py startapp users
    

    2 setting中安装子应用:

    INSTALLED_APPS=[ 'users.apps.UsersConfig', ]
    

    3 在应用的views.py中定义视图函数

    def index(request):
    	return HttpResponse('hello django')
    

    4 在应用中创建urls.py:用于配置应用中的路由

    from django.conf.urls import url
    from . import views
    #列表名称的单词是固定的,不能改
    urlpatterns=[
    	# url(路径, 视图)
    	# url('正则表达式',views.视图函数名)
    	url(r'^index$',views.index),
    ]
    

    5 将应用的路由添加到总路由中

    from django.conf.urls import url, include
    urlpatterns = [
    	# url(路径,路由)
    	url('^users/',include('users.urls')),
    ]
    

    请求参数的问题

    1 在路由规则中提取参数(路径中) http://127.0.0.1:8000/users/show/10/100

    #定义路由提取数据
    url(r'^show/(d+)/(d+)$',views.show),#第一个参数赋给a,第二个参数赋给b
    # url(r'^show/(?P<b>d+)/(?P<a>d+)$',views.show),#指定赋值
    # 在视图函数中接收参数
    def show(request, a, b):
    	return HttpResponse("%s---%s" % (a, b))
    

    2 查询字符串(不区分请求方式) # http://127.0.0.1:8000/users/get1?a=1&a=2&c=python

    def get1(request):
    	dict1 = request.GET      # <class 'django.http.request.QueryDict'>
    	a = dict1.getlist('a')   # 键重复时使用,返回列表
    	b = dict1.get('b')      # 键不重复时使用
    	c = dict1.get('c')
    	return HttpResponse('%s---%s---%s' % (a, b, c))
    #注意:只要参数出现在地址中,使用?***格式,就使用request.GET属性获取与请求方式无关
    

    3 请求体参数:请求体中的表单

    关闭默认的CSRF保护,
    <form method='post'></form>
    注意:只适用于post请求方式
    视图函数中接收:dict2 = request.POST
    

    4 请求体参数:非表单,现在通用json格式数据:put-raw-json

    {
    "a":10, "b":20, "c":"python"
    }
    视图函数中接收:	json_data = request.body.decode()
    						dict3 = json.loads(json_data)
    问:在python中如何将str转换成dict
    答:json
    	方法loads()将字符串转换成字典
    	方法dumps()将字符转换成字符串
    
  • 相关阅读:
    unity HideInInspector与SerializeField
    Unity3D之游戏架构脚本该如何来写(转)
    写在创业公司工作后
    工作选择
    指针引用
    sqrt函数实现
    超平面
    【读书笔记】读《程序员面试宝典》
    【小白学游戏常用算法】一、随机迷宫算法
    【Cocos2d-x游戏开发】浅谈游戏中的坐标系
  • 原文地址:https://www.cnblogs.com/davis12/p/14376804.html
Copyright © 2011-2022 走看看