Django中的视图
views.py
文件中的需求: 编写视图并配置URL(路由),实现一个显示界面
ht://127.0.0.1:8000/users/index
时,显示 hello django
信息打开刚创建的users模块,在 views.py
中编写视图代码。
from django.http import HttpResponse
def index(request):
"""访问首页的视图"""
return HttpResponse("hello django")
关于视图的说明:
Django
框架调用HttpRequest
对象,并作为视图的第一个参数传入request
,类型为HttpRequest
HttpRequest
对象HttpResponse
对象(或其子类对象),不能像Flask一样直接返回字符串HttpRequest
请求对象由Django创建,HttpResponse
响应对象由开发人员创建urls.py
文件中进行url路由配置如下: # 注意:urlpatterns是一个列表
urlpatterns = [
...
# 配置路由和视图: ht://127.0.0.1:8000/users/index
# 参数1: 匹配url的正则表达式
# 参数2: 匹配成功后由Django框架调用的视图函数
url(r'^users/index$', views.index),
]
注意:此处只是为简单作的初步配置,后续会对URL配置进一步讲解
在浏览器中输入网址 ht://127.0.0.1:8000/users/index
,确认是否执行了视图的逻辑,返回 hello django
信息
templates
目录下创建一个模板文件render()
方法渲染模板,得到HttpResponse
对象并返回
def index(request): # render返回的是HttpResponse对象
return render(request, 'index.html')
【 注意】 针对命令行创建的项目,需要额外手动创建模板目录,并进行配置;如果Pycharm创建的项目则无需作额外操作
templates
模板目录,后续开发中模板文件会放在此目录下setting.py
项目配置文件中,作如下配置:在项目的 setting.py
配置文件中,进行项目相关配置的修改。
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(file)))
当 前项目的根目录,Django会依此来定位工程内的相关文件,我们也可以使用该参数来构造文件路径。
True
DEBUG
为 True
时,如果Django程序运行出现异常时,会在浏览器显示详细的出错调试信息(如下图),而非调试模式下,不会显示出错调试信息【重要】项目运行出错了,需要查看是哪里一行代码造成出错,再进行分析解决
False
关闭调试模式,并且要同时设置 ALLOWED_HOSTS
参数 # 关闭调试模式
DEBUG = True
# 设置允许通过哪些主机访问, * 表示匹配所有(ip)
ALLOWED_HOSTS = ['*']
项目本地化配置
英语
,时区为 UTC标准时区
LANGUAGE_CODE = 'en-us' # 语言 TIME_ZONE = 'UTC' # 时区测试
ht://127.0.0.1:8000/admin/login
访问,默认显示为英文apps.py
文件,用于保存该应用的相关信息apps.py
文件中写入一个该应用的配置类,如下
from django.apps import AppConfig
class UsersConfig(AppConfig): # 表示这个配置类是加载到哪个应用的,
# 每个配置类必须包含此属性,默认自动生成
name = 'users'
settings.py
中的 INSTALLED_APPS
列表中,注册创建出来的应用,示例:配 置说明
* **用 pycharm创建的项目,默认已经是注册了应用的,不需要作额外配置**,针对新创建的应用(或命令行创建的应用)需要作此配置
* 作用:注册应用后,后续开发中,针对该应用中定义的模型类,才会生成对应的数据库表;
/static/
static_files
目录,并添加子目录和文件 imgs/avatar01.png
settings.py
文件中进行配置 # 访问静态文件用到的url前缀
STATIC_URL = '/static/'
# 告知Django静态文件保存在哪个目录下
STATICFILES_DIRS = [os.path.join(BASE_DIR, 'static_files')]
index.html
模板中应用
使用静态文件: DEBUG=True
)能对外提供静态文件DEBUG=False
工作在生产模式时,Django不再对外提供静态文件原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。