首先整理一下Django框架的基本信息:
创建工程:
通过命令行,调用django-admin,py startproject name可以创建一个Django的工程,
其中,如果发生不存在的错误,将django-admin.py的路径写全,如果不知道路径可以在命令行直接输入django-admin.py,会出现其py文件,上部注释了其路径。
创建应用:
python manage.py startapp name
可直接启动:
python manage.py runserver 8080
1、OSError:[WinError 123] 文件名、目录名或卷标语法不正确。
待解决
2、如何通过pycharm debug需要命令行参数的函数。
直接输入参数应用即可
3、Source doesn't exist
setting设置不正确,需要修改。如果修改正确仍无法运行,查看是否版本问题。具体看下面链接:
https://www.cnblogs.com/kerita/p/4523881.html
4、各方面简介:
视图层(views):接受web请求并且返回web响应,响应可能是HTML内容,一个重定向,404,或者图片,XML。HttpResponse返回的是字符串。
render函数:
render(request,template_name[,context])
结合一个给定的模板和一个给定的上下文字典,并返回一个渲染后的HttpResponse对象:
request:用于生成响应的对象
template_name:要使用的模板
context:添加到模板上下文的一个字典,默认是一个空字典。如果字典中的某个值是可调用的,视图将在渲染模板前调用它。
content_type:生成的文档要使用MIME类型,默认为DEFAULT_CONTENT_TYPE设置的值。
status:响应的状态码,默认为200.
模型层(template):
python的模板:HTML代码+模板语法、
模板包括使用时会被值替换掉的变量,和控制模板逻辑的标签。
def current_time(req): # ================================原始的视图函数 # import datetime # now=datetime.datetime.now() # html="<html><body>现在时刻:<h1>%s.</h1></body></html>" %now # ================================django模板修改的视图函数 # from django.template import Template,Context # now=datetime.datetime.now() # t=Template('<html><body>现在时刻是:<h1>{{current_date}}</h1></body></html>') # #t=get_template('current_datetime.html') # c=Context({'current_date':str(now)}) # html=t.render(c) # # return HttpResponse(html) #另一种写法(推荐) import datetime now=datetime.datetime.now() return render(req, 'current_datetime.html', {'current_date':str(now)[:19]})
路由层(随便起的):
urls.py:(本质上是url模式与url模式与视图函数调用的映射表)
这一层需要通过分配路由(path)和识别url来达到分类网页的目的。
from django.urls import path from django.conf.urls import url import sys sys.path.append(r'C:UsersadminDesktop oll') #加载路径 from lab import views urlpatterns = [ path('index', views.index), #用于分配路由 url(r'^index/',views.index) #用于区分URL ]
其中加载的路径是views的路径。path的这两个参数至少两个,如果日后有时间再来review一下。
这其中涉及到一个python的import知识,在同工程不同目录下的文件如何引用的问题。
通过os将其路径加入环境变量path中,然后在进行import,其中文件树如下: