1.介绍和创建项目.md

django

版本:1.x 和 2.x不支持python2版本,1.x路由正则风格,2.x路由风格简单类似flask。不支持python2版本,只支持py3.5及以上版本。

优点:大而全。封装多种功能,开箱即用。目录结构适合中大型程序。缺点,内涵的功能有些用不上。

教程:投票应用

1.确认python版本和django版本安装。

python -m django --version

2.新建工程项目

django-admin startproject mysite

3.项目目录结构
根目录下manage.py启动服务的入口。跟项目同名的mysite文件夹下是主要项目代码。有的项目中这个文件夹又叫做app、sre。settings.py设置,urls.py路由。wsgi.py打包应用部署相关。models.pyORM相关的类,view.py业务逻辑。
4.启动项目

python manage.py runserver

5.生成应用

python manage.py startapp polls

project 是项目工程,app应用是项目中一个功能模块。polls目录下migraions是sql迁移脚本,admin.py后台的插件,apps.py,models.py定义表结构的类,tests.py单元测试,views.py业务逻辑和HTML渲染。

流程

浏览器请求url → mysite/urls.py →polls/urls.py → polls/views.py → 返回响应浏览器展示

报错

1.安装django时报目录权限错误。解决使用管理员powershell pip安装。
2.代码修改后未生效,服务器无log原因进程未正常退出。解决 改端口或任务管理器中结束所有python.exe
3.getaddress函数报错。原因,计算机别名为中文

pip install django
import django
python -m django --version

2.1.4
\mysite>python manage.py runserver

时间

场景:你的网站世界用户都可以访问。网站上线圣诞节活动,0点到24点结束,本国人正常,外国人访问发现活动开始和结束时间提前或延后。

背景知识:
TIME_ZONE=‘UTC’
USE_TZ=True
不带时区的时间aware_time,带时区的时间local_time(本地时间)。
GMT、UTC(世界调和时)。中国东8区 UTC+8.
python内置的datetime包 now生成本地时间
如果网站只有国内访问,USE_TZ应该设置为False,时间可以由datetime包生成,存储在数据库的是不带时区的本地时间。

为了避免上面提到的场景,django的解决方案是。基于三方包朋友time_tz,由time_zone()生成带时区的时间。根据TIME_ZONE设置转换UTC时间存入数据库,html渲染时从取出UTC时间,根据访问者的时区转换成访问者当地的时间。

最佳实践:
1.国内访问。USE_TZ=False TIME_ZONE=‘UTC’ datetime.now() time_zone()都行
如果网站多国访问,USR_TZ应该设置为Ture TIME_ZONE=‘Asia/Shanghai’ time_zone()

可能出现的错误:
前台页面时间比实际早8小时,原因USE_TZ=False TIME_ZONE=‘Asia/Shanghai’

i18n

i18n意味国际化,网站上的菜单不同国家人访问展示不同的语言。原理有个翻译的配置文件。
I18N = TR

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值