Django开发笔记(一)

标签(空格分隔): Django Python


1. 创建并运行Django项目

  1. 创建开发环境 安装Django

    pip install django==version
  2. 执行创建工程的命令

    django-admin startproject projectname
  3. 修改 settings.py 文件里的配置数据库以及其他一些配置

  4. 执行数据库迁移命令

    python manage.py makemigrations
    python manage migrate
  5. 执行运行项目的命令

    python manage run server

2. 配置MySQL数据库

settings.py 文件中有一项默认配置,默认是sqllite3数据库,不需要配置用户名和密码,在此配置下执行数据库迁移命令时会在项目的根目录下出现一个名为db.sqlite3的文件,该文件就是sqlite的数据库文件。

DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
}
}

现在将项目的数据库设置为MySQL,由于Django默认的是使用MySQLdb,而该哭目前还不支持python3,所以为了后期的版本升级我们采用pymysql来代替。

安装pymysql

pip install pymysql

修改与__init__py文件

import pymysql

pymysql.install_as_MySQLdb()

settings.py中进行MySQL配置

DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'databasename', # 数据库名
'USER': 'root', # 用户名
'PASSWORD': '1234', # 密码
'HOST': '127.0.0.1', # 主机地址
'PORT': '3306', # 端口号
}
}

3. 设置模板目录

Django是 MTV 框架:M => Model,T => Templates,V => View。

在这里我们需要设置Django查找模板的路径。

一般我们都是在项目的根目录下创建一个名为templates的文件夹,里面放的就是模板文件。

然后我们需要告诉项目,在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',
# 配置上下文media的处理器
'django.core.context_processors.media'
],
},
},
]

4. 配置静态资源文件路径

模板需要引用许多静态文件,如css、js、图片、字体等等。同样在项目根目录创建一个名为static的文件夹,将这些静态文件放在该文件夹下。

settings.py中配置

  1. 在开发模式下

    • 配置
    DEBUG = True
    ALLOWED_HOSTS = []
    STATIC_URL = '/static/'
    # 自定义静态资源路径 debug为true时才有效
    STATICFILES_DIRS = (
    os.path.join(BASE_DIR, "static"),
    )
    • 使用

      在模板中使用
    {% load staticfiles %}
    <img src="{% static "my_app/myexample.jpg" %}" alt="My image"/>
  2. 在生产模式下

    • 配置
    DEBUG = False
    ALLOWED_HOSTS = ['*']
    STATIC_URL = '/static/'
    STATIC_ROOT = os.path.join(BASE_DIR, 'static')
    • 使用

      在模板中使用,再配合Nginx来处理 /static 的请求
    {% load staticfiles %}
    <img src="{% static "my_app/myexample.jpg" %}" alt="My image"/>

Django开发笔记(一)的更多相关文章

  1. Django开发笔记六

    Django开发笔记一 Django开发笔记二 Django开发笔记三 Django开发笔记四 Django开发笔记五 Django开发笔记六 1.登录功能完善 登录成功应该是重定向到首页,而不是转发 ...

  2. Django开发笔记五

    Django开发笔记一 Django开发笔记二 Django开发笔记三 Django开发笔记四 Django开发笔记五 Django开发笔记六 1.页面继承 定义base.html: <!DOC ...

  3. Django开发笔记四

    Django开发笔记一 Django开发笔记二 Django开发笔记三 Django开发笔记四 Django开发笔记五 Django开发笔记六 1.邮箱激活 users app下,models.py: ...

  4. Django开发笔记三

    Django开发笔记一 Django开发笔记二 Django开发笔记三 Django开发笔记四 Django开发笔记五 Django开发笔记六 1.基于类的方式重写登录:views.py: from ...

  5. Django开发笔记二

    Django开发笔记一 Django开发笔记二 Django开发笔记三 Django开发笔记四 Django开发笔记五 Django开发笔记六 1.xadmin添加主题.修改标题页脚和收起左侧菜单 # ...

  6. Django开发笔记一

    Django开发笔记一 Django开发笔记二 Django开发笔记三 Django开发笔记四 Django开发笔记五 Django开发笔记六 1.运行 python manage.py runser ...

  7. Django开发笔记之数据库的设计

    后台采用Django开发,可以体会到开发的便利之处,对于一个项目来说,首先最重要的是数据库的设计,那么在Django下数据库设计主要是如下步骤: 1,需求分析,这点子不用多说,而我也深刻体会到了没有原 ...

  8. Django开发笔记

    django基础之视图 1.在Django中网页前端的页面和其他内容都是由视图来传递的(视图对web请求进行回应)Django通过检查请求的URL(准确地说,是URL里域名之后的那部分)来选择使用哪个 ...

  9. django 开发笔记1

    1.布置到云服务器 使用 python3 manage.py runserver提示错误,需要将settings.py 中 ALLOWED_HOSTS 字典中加入 localhost;0.0.0.0; ...

随机推荐

  1. url最后的“/”是什么作用

    多了个尾巴 有时候,当你尝试在地址栏输入https://123/demo的时候,会发现浏览器会重定向到https://123/demo/这个地址,也就是多了个/,发生了重定向.有图为证: 上面这个图是 ...

  2. jsp链接orcl

    自己整的!好用滴!!希望能帮到一些初学者! package lobsterwwww; import java.sql.Connection; import java.sql.DriverManager ...

  3. WPF中路由事件的传播

    路由事件(RoutedEvent)是WPF中新增的事件,使用起来与传统的事件差别不大, 但传播方式是完全不同的. 路由事件的传播方式 通过RoutingStrategy来定义传播的方式 public ...

  4. ASP.NET 数据绑定到列表控件

    <div> <asp:ListBox ID="ListBox1" runat="server"></asp:ListBox> ...

  5. Spring MVC - MultipartFile实现文件上传(单文件与多文件上传)

    准备工作: 需要先搭建一个spirngmvc的maven项目 1.加入jar包 <dependency> <groupId>commons-fileupload</gro ...

  6. 二叉树的递归,非递归遍历(java)

    import java.util.Stack; import java.util.HashMap; public class BinTree { private char date; private ...

  7. Spring事务传播属性介绍(二).mandatory、not_supported、never、supports

    Required.Required_New传播属性分析传送门:https://www.cnblogs.com/lvbinbin2yujie/p/10259897.html Nested传播属性分析传送 ...

  8. WPF TreeView 选择事件执行两次,获取TreeView的父节点的解决方法

    1.TreeView选择事件执行两次 Very often, we need to execute some code in SelectedItemChanged depending on the ...

  9. AssemblyInfo.cs 详解

    前言 ? .net工程(包括Web和WinForm)的Properties文件夹下自动生成一个名为AssemblyInfo.cs的文件,一般情况下我们很少直接改动该文件.但我们实际上通过另一个形式操作 ...

  10. 浅谈sql中的in与not in,exists与not exists的区别以及性能分析

    1.in和exists in是把外表和内表作hash连接,而exists是对外表作loop循环,每次loop循环再对内表进行查询,一直以来认为exists比in效率高的说法是不准确的.如果查询的两个表 ...