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,需要在这里设置一下 |
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 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)