django项目设置

1 项目下的文件

用于项目设定的setting.py

用于url规则匹配的urls.py

用于创建socket对象的wsgi.py

2 urls

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

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

1
2
3
4
5
6
7
8
9
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

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

  

1
2
3
4
5
6
7
8
9
10
11
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写到这里

  

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

  

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
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目录

 

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

 

1
2
3
4
5
6
7
8
9
10
11
12
13
# 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

  

1
2
3
4
5
6
7
8
9
10
# 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中的模板地址如下

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

  

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

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

 

4 init

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

  

 

 

 

posted @   jabbok  阅读(187)  评论(0编辑  收藏  举报
编辑推荐:
· Linux glibc自带哈希表的用例及性能测试
· 深入理解 Mybatis 分库分表执行原理
· 如何打造一个高并发系统?
· .NET Core GC压缩(compact_phase)底层原理浅谈
· 现代计算机视觉入门之:什么是图片特征编码
阅读排行:
· 手把手教你在本地部署DeepSeek R1,搭建web-ui ,建议收藏!
· Spring AI + Ollama 实现 deepseek-r1 的API服务和调用
· 数据库服务器 SQL Server 版本升级公告
· 程序员常用高效实用工具推荐,办公效率提升利器!
· C#/.NET/.NET Core技术前沿周刊 | 第 23 期(2025年1.20-1.26)
点击右上角即可分享
微信分享提示