Django学习笔记(二)

Django学习笔记(二)

Pycharm新建Django项目:

File-> new Project -->左侧选择Django,右边选择python环境(如图所示)

在这里插入图片描述

Django项目目录结构:

1539763831240

settings.py: 配置文件相关
urls.py:存放路径和函数对应关系文件
wsgi.py:跟socket通信相关
manage.py:所有管理Django项目的入口文件从manage.py开始

开始一个简单的操作:

# 这是urls.py文件
# 导入 HttpResponse包
from django.shortcuts import HttpResponse
# 定义函数根据不同路径调用不同函数
def han(request):
    # request保存了所有和用户浏览器请求的相关数据
    return HttpResponse('hello han')

def huzi(request):
    # request保存了所有和用户浏览器请求的相关数据
    return HttpResponse('hello huzi')

#保存了路径和函数的对应关系
urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^han/', han),
    url(r'^huzi/', huzi),
]

运行manage.py文件,默认端口8000。

1539765235601

可以看见不同路径成功显示不同的页面。

现在我尝试一下返回给浏览器一个HTML文件,看看浏览器会不会渲染(html文件名为han.html)

  1. 在templates文件夹下边新建han.html文件

  2. 修改urls.py文件里的han()方法:

    def han(request):
        # request保存了所有和用户浏览器请求的相关数据
        with open('templates/han.html', "r", encoding="utf8") as f:
            data = f.read()
        return HttpResponse(data)![1539766440636](C:\Users\ADMINI~1\AppData\Local\Temp\1539766440636.png)
    

    1539767279069

    运行成功,但是使用with-open这样比较麻烦,Django提供了render来简化操作:

    from django.shortcuts import HttpResponse, render
    # 导入render
    def han(request):
        # request保存了所有和用户浏览器请求的相关数据
        return render(request, "han.html")
    

    1539767474046

    这样依旧运行成功,并且很简单!

    使用render时,文件如果是放在templates文件夹下,可以直接写文件名称就可以了。这其中的原因是因为setting.py文件中配置了文件路径。

    虽然说打开了,但是样式没了,本来应该是这样的:

    1539767393969

原来是我html导入的css,jQuery等文件Django并没有找到。

这里的解决办法是,新建文件夹static随便什么名都可以,用来专门存放这些html中引用的文件。

1539767569090

在setting.py文件里面进行配置:

# 默认就有的  设置静态文件保存文件的别名
STATIC_URL = '/static/'
# 所有静态文件(css/js/图片等)都放在下面配置的文件中
# 将***替换为创建的存放静态文件的文件夹名,
STATICFILES_DIRS = [
    os.path.join(BASE_DIR, "***")
]

这样设置之后将用到的静态文件存入static文件夹中,在html文件中引用的地方路径前加上/static/就可以了:

1539768362971

运行成功

总结对setting.py文件的操作:

  • 配置html文件存放的位置
  • 配置静态文件存放的位置

猜你喜欢

转载自blog.csdn.net/J0Han/article/details/83147728