Django 是python开发的一个免费开源的Web框架,可以用于快速搭建高性能,优雅的网站。(emmmm,百度百科)。本学期需要做python数据的可视化,之前搞过两次SMM和SSH,但是之后java基本处于弃用的状态,python越来越流行,所以整个python框架下的网页开发也是有必要的。在此感谢“自强学堂”的django教程,(链接: https://pan.baidu.com/s/1rap4t20 密码: uta2),简单易懂,是和新手入门。

  一、安装与搭建

  已安装python3.5和pycharm,直接在命令行pip install django,然后“Successfully installed Django-2.1.7”。

  File-new project-Django新建一个空项目。

  

自强学堂python django自强学堂_html

  在命令行内运行“python manage.py startapp django_web”建立网站。在setting.py中的INSTALLED_APP内加入‘django_web’,这样jango的网站就能识别了。逻辑顺序是:request获取到url->url找到对应的view->view从model和templates找到想要的数据和网页。 

  首先先在templates里新建一个index.html文件,就简单输一个hello world就行。第二部,在views.py中新建函数如下,render函数的作用就是根据request返回html页面。也即是说,view层需要做的是返回页面。

自强学堂python django自强学堂_html_02

  接下来为写好的页面分配网址。

  运行之后报错,错误类型是UnicodeDecodeError: 'utf-8' codec can't decode byte 0xc7,经过百度搜索,找到了解决方法,然后更改国家或地区---管理语言设置---在弹出的地域里面点击‘更改系统区域设置’---把‘BETA版:使用utf-8’那个选上,重启。

  接下来说一下django.urls path 与django.conf.urls  url的区别:

  path调用的是python第三方模块或框架,而url则是自定义的模块。如Views下的def函数对应你url中的参数值.

  例如:

url(r'^login',views.login),
url('login',views.login),
def login(request):
    return render(request,'login.html')

  1.x版本用url,2.x版本用path 

  写法上的区别如下:url(r'^index/$',views.index), path('index/',views.index),url需要用的正则表达式,而path不需要。url等同于re_path。  

  因为我是django2的版本,而所看教程是1的版本,我上来直接用的是url方法,后运行404,无头绪,以为2.n版本不兼容url方法,所以又试了path,总结发现必须按照各个方法的书写规范来编写,否则很可能出问题。

.path.join(BASE_DIR,'templates')。原因好像是pycharm见项目的时候这个给置成空了,在这里加载上路径就能顺利运行了。

抛出TemplateDoesNotExist的异常时解决方法

首先先查看render()中的文件名输入是否正确。

然后查看是否将模板文件(.html 文件)写入了templates中,查看templates文件名是否正确,必须为templates ,

查看’DIRS’中是否添加了路径。

如果是app中的templates,就去INSTALLED_APPS查看是否安装了app。

 

自强学堂python django自强学堂_html_03

 

  最后,hello world!