Django学习笔记(二)
Pycharm新建Django项目:
File-> new Project -->左侧选择Django,右边选择python环境(如图所示)
Django项目目录结构:
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。
可以看见不同路径成功显示不同的页面。
现在我尝试一下返回给浏览器一个HTML文件,看看浏览器会不会渲染(html文件名为han.html)
-
在templates文件夹下边新建han.html文件
-
修改urls.py文件里的han()方法:
def han(request): # request保存了所有和用户浏览器请求的相关数据 with open('templates/han.html', "r", encoding="utf8") as f: data = f.read() return HttpResponse(data)
运行成功,但是使用with-open这样比较麻烦,Django提供了render来简化操作:
from django.shortcuts import HttpResponse, render # 导入render def han(request): # request保存了所有和用户浏览器请求的相关数据 return render(request, "han.html")
这样依旧运行成功,并且很简单!
使用render时,文件如果是放在templates文件夹下,可以直接写文件名称就可以了。这其中的原因是因为setting.py文件中配置了文件路径。
虽然说打开了,但是样式没了,本来应该是这样的:
原来是我html导入的css,jQuery等文件Django并没有找到。
这里的解决办法是,新建文件夹static随便什么名都可以,用来专门存放这些html中引用的文件。
在setting.py文件里面进行配置:
# 默认就有的 设置静态文件保存文件的别名
STATIC_URL = '/static/'
# 所有静态文件(css/js/图片等)都放在下面配置的文件中
# 将***替换为创建的存放静态文件的文件夹名,
STATICFILES_DIRS = [
os.path.join(BASE_DIR, "***")
]
这样设置之后将用到的静态文件存入static文件夹中,在html文件中引用的地方路径前加上/static/
就可以了:
运行成功
总结对setting.py文件的操作:
- 配置html文件存放的位置
- 配置静态文件存放的位置