1 项目下的文件

用于项目设定的setting.py

用于url规则匹配的urls.py

用于创建socket对象的wsgi.py

2 urls

django2.0相比1.x,在url匹配语法上有很大变化,所以1.x的语法在2.0中是不适用的。

分两步,导入app.views,创建规则,指向views先的一个函数

from django.contrib import admin
from django.urls import path
from blog import blog_views
urlpatterns = [
path('admin/', admin.site.urls),
path('blog/', blog_views.blog_index),
]
#admin是默认存在的管理函数
#blog app导入它自己的views,然后设定,当url为'blog/'时,把request发送给blog_views下的blog_index方法。

3 setting

ALLOWED_HOSTS = ['*']
#允许访问的ip,默认为空,可以改成任意

  

INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'cmdb',
]
#django开头的app是系统默认添加
#我要创建一个app,就要把app写到这里

  

MIDDLEWARE = [
'django.middleware.csrf.CsrfViewMiddleware',
]
#csrf防攻击,启用这个功能,在get请求时,会在响应头收到一个csrftoken。
#在form post表单提交时,加入{% csrf_token %}参数,post过来的请求,会加一个csrftoken的隐藏input标签
#django收到自己发出去的csrftoken,就证明这个请求是从自己的页面上提交的。是安全的

  

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',
],
},
},
]
#DIRS默认为空,这样,django会在app下的templates下搜索模板,
#这里改为项目家目录的templates目录

 

DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'mysite',
'USER': 'root',
'PASSWORD': 'xxxx',
'HOST': '127.0.0.1',
'PORT': '3306',
}
}
#数据库配置,默认为sqlite3,这里已经改成mysql
#设定库名,用户,密码,主机和端口

 

# Internationalization
# https://docs.djangoproject.com/en/2.0/topics/i18n/ LANGUAGE_CODE = 'zh-hans' TIME_ZONE = 'Asia/Shanghai' USE_I18N = True USE_L10N = True USE_TZ = False
#设置国际化选项,语言编码改成中文,时区改成上海,USE_TZ = False

  

# Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/2.0/howto/static-files/ STATIC_URL = '/static/'
STATICFILES_DIRS = [
os.path.join(BASE_DIR, "static"),
'/static/',
]
#静态文件目录设置,django默认不会创建static文件夹,也没有这里的配置,需要自己加上去。
#当请求/static/时,搜索目录为项目家目录的static目录

按照这样设定好templates和static时,目录结构如下

在views中的模板地址如下

def blog_index(request):
blog_list = BlogPost.objects.all()
print(blog_list)
return render(request,'blog/index.html', {'blog_list':blog_list})

  

在模板中引用静态文件如下

<link href="/static/blog/starter-template.css" rel="stylesheet">

4 init

import pymysql

pymysql.install_as_MySQLdb()
#django2.0默认支持mysqldb,但python3不支持,要使用pymysql,需要在这里设置一下

  

 

 

最新文章

  1. 嵌入式 Linux下永久生效环境变量bashrc
  2. Sla子分类账表结构
  3. SQL--联合查询【Union】
  4. cocos2d-x之内存管理(4)
  5. U-boot 之TFTP服务器配置
  6. 二、freemarker.controller半自动静态化+Tomcat虚拟资源映射
  7. 转:移动开发中一些bug及解决方案
  8. ags模版与vs
  9. MKDOCS在线文档编辑器
  10. Delphi动态创建组件,并释放内存
  11. sqlite数据库方言配置
  12. VK Cup 2012 Qualification Round 1---C. Cd and pwd commands
  13. 开发高性能JAVA应用程序基础(内存篇)
  14. [ZJOI 2010]Perm 排列计数
  15. 如何在cmd中集成git
  16. Server Tomcat v8.0 Server at localhost was unable to start within 45 seconds
  17. Django:视图views(一)
  18. Vue基础进阶 之 Vue生命周期与钩子函数
  19. Gym - 101806Q:QueryreuQ(回文树)
  20. 如何悄悄地提升MySQL用户权限

热门文章

  1. AndroidPageObjectTest_Chained.java
  2. SPOJ7258
  3. 往android的内核添加驱动及 ueventd.rc 修改【转】
  4. 自动化测试框架selenium+java+TestNG——配置篇
  5. 常见的LINUX发行版安装libiconv库方法
  6. 为 Android 平台开发一个输入法
  7. linux系统配置之服务程序的开机自启动(centos)
  8. Chkrootkit安装配置教程 – Linux后门入侵检测
  9. 51Nod - 1304 :字符串的相似度 (裸的扩展KMP)
  10. BZOJ_3887_[Usaco2015 Jan]Grass Cownoisseur_强连通分量+拓扑排序+DP