django(1)如何创建一个django项目

这半个月除了上课就是一直在学习django,万事开头难,好多东西现在还没搞明白,如今只能记录一下自己在views.py和urls.py里面了解到的东西。

首先先创建一个自己的app.命令是:python3 manage.py startapp blog (blog 是APP的名字)

 这里面的urls.py 是我自己创建的,本来应该写在下面那个urls.py 里面,但是一旦这个项目里面APP数量多,各个app的路径都混在一起十分不方便,因此每一个app都管理自己的路径,泾渭分明,而项目的urls.py 只需要指定app的路径即可。

from django.contrib import admin
from django.urls import path
from django.urls import include

urlpatterns = [
path('admin/', admin.site.urls),
# 每个app的总路径放到配置里面,支线路径分配到各个app里面,即app内部的urls.py
path("blog/",include('blog.urls')),#include是用来导入每个app里面urls的路径,相当于支路
]
各个APP里面的urls.py是这个样子的
from django.urls import path#包含四个参数,第一个是路径名,第二个是输入这个路径后执行的函数
from blog import views#导入views.py,便于执行里面的函数。
urlpatterns = [
# 第三个参数可以传视图函数的参数,名字要一致
# 第四个参数是该页面的别名,无论第一个路径参数如何变,只要输入别名的路径都能返回想要的页面
# 这个在form表单里面action可以用到{%url 'blog/user_info'%},当你提交后仍然可以返回该界面
path("cur_time/",views.cur_time,{"year":'1908'}),
path("user_info/", views.user_info,name="blog/user_info"),
path("cycle/",views.cycle),
path("index/",views.index),
]
接下来就是views.py视图函数了。每个APP里面都会有
from django.shortcuts import render,redirect,HttpResponse
# Create your views here.
def cur_time(request):
return render(request,"blog/cur_time.html")#render是渲染,把html里面的语言转换成我们浏览识别的东西
首先你要打开一个域名,自定义即可。指令为python manage.py runserver 127.0.0.1:8080
打开浏览器输入127.0.0.1:8080/blog/cur_time就会显示你制作的cur_time.html这个页面

打开页面后我们想要传递数据,有以下几种方法。
(1)def cur_time(request):
    cur_time=time.ctime()
    return render(request,"blog/cur_time.html",{"cur_time":cur_time})
在前端页面要写一下<h1>当前时间是:{{cur_time}}</h1>#注意前端双大括号里面的名字要和视图函数键名对应,数据是以键值对的形式传递
(2)刚刚在urls.py 就说过,第三个参数就可以是传递到前端的数据,也是用键值对表示
def cur_time(request,year):#这个参数的名字要和urls.py 里面键名一致
    return render(request,"blog/cur_time.html",{"Year":year})
前端页面内容是:<h1>年份:{{Year}}</h1>
(3)
def cur_time(request):
  s=[1,2,3,4]
  s1={"name":"star","age":18}
    return render(request,"blog/cur_time.html",locals())
#加上locals()这个函数就可以把s和s1的数据全部传递到前端,前端再利用模板语言取出来渲染到页面上即可(刚刚双大括号就是一个模板语言)
#由于用到的模板语言很少。例如if else或者for循环之类的,还可以把字典里面特定的键值对取出来,这里就不说了。

以上三种方法都可以从后端获取数据,接下来在记录一下自己写的html要放到哪里,后端是怎么找到它的。
先是要设置settings.py,看里面有没有如下代码
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [os.path.join(BASE_DIR,'templates')],
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
],
},
},
]
这一段是指定了我们templates文件夹路径,然后我们写的html文件放在这里面

return render(request,"blog/cur_time.html")就可以找到相应的html文件
至于css和js内容我们也要在settings.py指定一个文件夹路径

 

 可以看出文件夹名称就叫static了

 

 这样一来,在html里面head标签引入css和js 或者图片就比较方便了

暂时就这么多内容,这些天我也在写前端的页面,想要开发一个属于自己的网站。如今登录页面和主页面已经写好了,后续会不断分享自己的进度

 
posted @ 2020-10-14 10:52  starandsteve  阅读(292)  评论(0)    收藏  举报