Django开发笔记(一)

标签(空格分隔): Django Python


1. 创建并运行Django项目

  1. 创建开发环境 安装Django

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

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

  4. 执行数据库迁移命令

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

    1. python manage run server

2. 配置MySQL数据库

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

  1. DATABASES = {
  2. 'default': {
  3. 'ENGINE': 'django.db.backends.sqlite3',
  4. 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
  5. }
  6. }

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

安装pymysql

  1. pip install pymysql

修改与__init__py文件

  1. import pymysql
  2. pymysql.install_as_MySQLdb()

settings.py中进行MySQL配置

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

3. 设置模板目录

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

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

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

然后我们需要告诉项目,在settings.py中配置。

  1. TEMPLATES = [
  2. {
  3. 'BACKEND': 'django.template.backends.django.DjangoTemplates',
  4. # 下面这句就是配置模板路径
  5. 'DIRS': [os.path.join(BASE_DIR, 'templates')],
  6. 'APP_DIRS': True,
  7. 'OPTIONS': {
  8. 'context_processors': [
  9. 'django.template.context_processors.debug',
  10. 'django.template.context_processors.request',
  11. 'django.contrib.auth.context_processors.auth',
  12. 'django.contrib.messages.context_processors.messages',
  13. # 配置上下文media的处理器
  14. 'django.core.context_processors.media'
  15. ],
  16. },
  17. },
  18. ]

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

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

settings.py中配置

  1. 在开发模式下

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

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

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

      在模板中使用,再配合Nginx来处理 /static 的请求
    1. {% load staticfiles %}
    2. <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. Chapter 3 Phenomenon——19

    His unfriendliness intimidated me. 他的不友好恐吓到了我. My words came out with less severity than I'd intende ...

  2. docker OCI runtime

    Open Container Initiative(OCI)目前有2个标准:runtime-spec以及image-spec.前者规定了如何运行解压过的filesystem bundle.OCI规定了 ...

  3. 系统启动时队列自动下单--ServletContextListener

    package com.liying.pear.queue; import javax.servlet.ServletContextEvent; import javax.servlet.Servle ...

  4. Mysql的select in会自动过滤重复的数据

    默认使用 SELECT 语句: 当加上in范围后,结果如下图: in范围内的数据,如果有重复的,只会选择第一个数据. 所以如果不是直接使用SQL语句来查询,而是在代码中来查询时,记得使用 distin ...

  5. 关于Mybatis与Spring整合之后SqlSession与mapper对象之间数量的问题。

    1,sqlsession的真实类型和数量 由于使用spring管理bean,当我们在代码中需要使用这个bean的时候,会首先去容器中找,第一次需要调用MapperFactoryBean的getObje ...

  6. Cglib invoke以及invokeSuper的一点区别

    简单记录下,解决的一个问题,Cglib的invoke和invokeSuper的区别: 简而言之,invoke方法调用的对象没有增强过,invokeSuper方法调用的对象已经是增强了的,所以会再走一遍 ...

  7. js设计模式总结3

    1.模板方法模式 模板方法就是将多个模型抽象化归一,从中取出一个最基本的模板,当然这个模板可以作为实体对象也可以作为抽象对象,看你具体需求,其他模块只需要继承这个模块方法,也可以扩展这个方法. 举例子 ...

  8. 爬虫---selenium动态网页数据抓取

    动态网页数据抓取 什么是AJAX: AJAX(Asynchronouse JavaScript And XML)异步JavaScript和XML.过在后台与服务器进行少量数据交换,Ajax 可以使网页 ...

  9. Cannot find module 'socket.io'

    That's all. Then I try to use socket.io with this line: var io = require('socket.io').listen(app); A ...

  10. jQuery在线引用地址(全)

    转:https://www.cnblogs.com/lmyau/p/7736269.html 1.官网jquery压缩版引用地址: 3.1.1版本: <script src="http ...