慕课网-Django入门到进阶-更适合Python小白的系统课程-第2章Django中的路由与视图-2.6项目练习-Django的View、路由参数实践

第2章 Django中的路由与视图

2.6 项目练习-Django的View、路由参数实践

课程练习项目——消息发布与获取

项目介绍

1.该项目是一个简单的消息发布和获取练习

2.该项目围绕 Django2 的基础课程,每个章节会根据当前章节内容应用到项目中

3.本项目以练习 Django 基础为主,并不涉及太多复杂操作,如消息订阅与发布,socket 长链接等,但在开发的过程中会提及,使新学员在概念上有所启蒙

4.本项目是在整个课程录制完成之后录制,会对于课程讲解过程中,自己感觉不是很到位,或没有讲到的本该是比较基础的地方,或是我自身在工作上遇到的一些坑而课程没有讲到的,加以补充,并且在开发的过程中,我将不提前备课,遇到错误不截屏(除非很没意义的部分),这样可以让大家基于我的出错如何解决进行一个参考

新建项目

#进入虚拟环境
cd python3_env
cd Scripts
activate

#新建项目
cd django
django-admin startproject message_test

#新建应用
cd message_test
python manage.py startapp app

修改文件

1.进入项目下目录 message_test,修改文件 settings.py,修改编码、时区和注册应用

#注册应用
INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'app',
]

#修改编码
LANGUAGE_CODE = 'zh-hans'

#修改时区
TIME_ZONE = 'asia/Shanghai'

2.进入项目下目录 app,添加文件 urls.py,添加应用的路由

#!/usr/bin/env python
# -*- coding:utf-8 -*-

from django.urls import path
from .views import LessionTwo

urlpatterns = [
  path('two', LessionTwo.as_view(), name='two')
]

3.进入项目下目录 app,修改文件 views.py,添加一个 LessionTwo 类

#!/usr/bin/env python
# -*- coding:utf-8 -*-

from django.views.generic import View
from django.http import HttpResponse

class LessionTwo(View):
    def get(self, request):
        message = request.GET.get('message', '这里没有内容')
        return HttpResponse(message)

4.进入项目下目录 message_test,修改文件 urls.py,添加 app 应用的路由 

from django.contrib import admin
from django.urls import path, include
from app import urls as app_urls

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', include(app_urls))
]

5.运行代码

6.进入项目下目录 app,修改文件 urls.py

#!/usr/bin/env python
# -*- coding:utf-8 -*-

from django.urls import path
from .views import LessionTwo

urlpatterns = [
  path('two/<str:message>', LessionTwo.as_view(), name='two')
]

7.进入项目下目录 message_test,修改文件 views.py

#!/usr/bin/env python
# -*- coding:utf-8 -*-

from django.views.generic import View
from django.http import HttpResponse

class LessionTwo(View):
    def get(self, request, message):
        # message = request.GET.get('message', '这里没有内容')
        return HttpResponse(message)

8.Python3 编码问题:UnicodeEncodeError,如何解决

ipython
import sys

#查看编码方式
sys.stdout.encoding

#解决方式,启动服务时输入
PYTHONIOENCODING=utf-8 python manage.py runserver

posted on 2020-01-14 05:17  herisson_pan  阅读(6)  评论(0)    收藏  举报

导航