Django

版本

安装

pip安装

pip install django 安装最新版本的
pip install django==1.11.11 安装指定版本的

验证安装

直接去代码中调用django的模块

import django
print(django.get_version()) 1.11.11

或者命令行使用

django-admin

创建项目

命令行注意要在文件相对应的目录创建文件

创建django项目
django-admin startproject zx1
启动django项目-测试服务器,压力很小,500左右
python manage.py runserver ctrl+c关闭
创建应用app
python manage.py startapp app01

注意

1.新创建的命令行新建的app需要自己去setting文件中注册

2.pycharm只会帮你注册第一个你用pycharm创建的应用

django目录

mysite
mysite Python包
__init__.py 项目可以作为包
settings.py 全局设置文件
apps 配置当前app的,暂时用不到
urls.py 全局路由控制
wsgi.py wsgi服务器的配置文件(高并发的)
manage.py Djago项目管理

app目录

app
__init__.py 项目可以是一个包
admin.py 数据库如果希望被后台看到,需要在这个文件注册
models 创建该APP可能使用到的数据库
test 测试
views 实现对应业务的函数

配置全局路由

1.x是相当于2.x的re_path,是可以支持正则匹配的路由

2.x的path是不支持正则的

url(r'',zx1_views.index)

数据库生成命令

创建默认数据库,每次修改models.py数据模型,都要执行下面两句

python manage.py makemigrations 检查数据库差异(同步),生成迁移文件(migrations)
python manage.py migrate 根据迁移文件生成对应的SQL语句

创建admin用户

python manage.py createsuperuser

setting配置

时区和语言设置

LANGUAGE_CODE = 'zh-Hans'
TIME_ZONE = 'Asia/Shanghai' #如果要操作数据库,记得把下面置为False,否则不会使用以上配置的时间,操作数据库
USE_TZ = False

配置app

INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'app01'
]

app-url配置

django
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'zx',zx1_views.index),
url(r'app01',include('app01.urls')),
# url('app01',include('app01.urls',namespace='app01'))
] app
urlpatterns = [
url(r'login/',views.login)
]

配置数据库-mysql

主要注意

1.在django orm中没有char字段,但是django暴露给用户可以自定义char字段的功能

2.增加字段,如果数据库已经有数据,需要给新增的字段添加默认值,或者设为空(default,null=True)

__init__.py django默认使用MYSQLdb,但是该模块不兼容,不推荐使用
所以告诉django回去使用pymysql模块连接数据库
使用pymysql代替MYSQLdb
import pymysql
pymysql.install_as_MySQLdb() DATABASES = {
'default':{
'ENGINE':'django.db.backends.mysql',
'NAME':'zx2',
'USER':'root',
'PASSWORD':'root',
'HOST':'127.0.0.1',
'PORT':3306,
'CHARSET':'UTF8'
}
} id = models.AutoField(primary_key=True) 在django中,可以不指定主键字段
django orm会自动给当前表新建一个名为id的主键

页面资源配置

pycharm自己会创建

手动在项目下创建一个templates文件
'DIRS': [os.path.join(BASE_DIR, 'templates')], return render(request,'login.html')

模板渲染

<h1><span>{{date}}</span>欢迎来到登录界面</h1>

today = datetime.datetime.now()
content = {'date':today}
return render(request,'login.html',content) 模板语法
变量相关:{{}}
逻辑相关:{%%}

静态资源

用户能在浏览器中输入网址访问到相应的资源,前提是后端暴露了该资源的接口

创建static静态资源文件夹
STATIC_PATH = os.path.join(BASE_DIR,'static')
STATICFILES_DIRS = (
真实的
STATIC_PATH,
) 虚拟的
STATIC_URL = '/static/' 访问静态资源的前缀,可以更改,但是要和html的对应 #引用 动态的和STATIC_URL相互对应
{% load staticfiles %}
<img src="{% static 'img/Mysql.jpg' %}" alt="">

CSRF

跳过csrf
1.{% csrf_token %}在from表单中加
2.# 'django.middleware.csrf.CsrfViewMiddleware',在setting中注释

媒体文件配置media

新建文件夹

media

setting

# 媒体文件配置
MEDIA_URL = '/media/'
# media文件夹的绝对路径
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')

url

from django.views.static import serve
from django.conf import settings
# 在总路由的最下方对外开放media接口
url(r'media/(?P<path>.*)', serve, {'document_root': settings.MEDIA_ROOT})

ORM执行查看原生SQL的两种方法

1.在setting中配置

            LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'handlers': {
'console': {
'level': 'DEBUG',
'class': 'logging.StreamHandler',
},
},
'loggers': {
'django.db.backends': {
'handlers': ['console'],
'propagate': True,
'level': 'DEBUG',
},
}}

2.如果查询的结果是queryset对象可以.query查看命令

只要是queryset对象就可以无限制的点queryset对象的方法,queryset.filter().filter().filter()

搭建django-ORM测试环境

from django.test import TestCase
import os
# Create your tests here.
if __name__ == "__main__":
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "zx1.settings")
import django django.setup()
from app01 import models
# 你就可以在下面测试django任何的py文件

返回数据

三板斧

from django.shortcuts import render,HttpResponse,redirect
HttpResponse # 返回字符串的 render # 返回html页面 redirect # 重定向 返回的其实都是HttpResponse对象

request

获取post请求的数据
request.POST 获取get请求携带的数据
request.GET request.POST.get('username') 默认只取数据列表最后一个元素
如果想要取出所有的元素,就必须使用getlist()

django初始化的更多相关文章

  1. Django 初始化数据库

    django 初始化数据库 刷新数据库guoguos-MacBook-Pro:mysite guoguo$ python manage.py sqlflushBEGIN;SET FOREIGN_KEY ...

  2. django 初始化项目 和modelviewset 使用

    django初始化项目 1.初始化项目结构└─shiyanlou_project │ .gitignore│ README.en.md # 英文│ README.md # 中文项目简介│├─celer ...

  3. Django初始化之基本操作

    1.指定要安装的Django版本 C:\Users\win7>pip install Django==1.11.8 2.查看安装的django版本 C:\Users\win7>pip sh ...

  4. 【解决方案】django初始化执行python manage.py migrate命令后,除default数据库之外的其他数据库中的表没有创建出来

    [问题原因]:django工程中存在多个应用,每个应用都指定了对应的数据库.执行python manage.py migrate命令时没有指定数据库,将只初始化默认的default数据库. [解决方案 ...

  5. django 初始化 介绍 生命周期

    安装好django,配置模板,静态文件 # 创建Django工程 django-admin startproject [工程名称] mysite - mysite # 对整个程序进行配置 - init ...

  6. Django 初始化数据库遇到问题(python manage.py migrate)

    问题:django.db.utils.InternalError: (1049, "Unknown database 'main'") 在Django 配置的数据库上 执行  cr ...

  7. python——django使用mysql数据库(二)

    上一篇中,我们已经讲述了如何初始化一个django数据库,这一章就来讲讲在实际的项目中如何使用我们初始化的数据库呢? 如还未进行初始化数据库操作,请参考python——django使用mysql数据库 ...

  8. python学习笔记--Django入门0 安装dangjo

    经过这几天的折腾,经历了Django的各种报错,翻译的内容虽然不错,但是与实际的版本有差别,会出现各种奇葩的错误.现在终于找到了解决方法:查看英文原版内容:http://djangobook.com/ ...

  9. Django学习之七:Django 中间件

    目录 Django 中间件 自定义中间件 - - - 大体两种方式 将中间件移除 实例 中间件加载源码阅读 总结 Django 中间件 Tips: 更新日志: 2019.01.31 更新django中 ...

随机推荐

  1. 第二十九章 System V共享内存

    共享内存数据结构 共享内存函数 shmget int shmget(key_t key, size_t size, int shmflg); 功能: 用于创建共享内存 参数: key : 这个共享内存 ...

  2. 大前端技术系列:TWA技术+TensorFlow.js => 集成原生和AI功能的app

    大前端技术系列:TWA技术+TensorFlow.js => 集成原生和AI功能的app ( 本文内容为melodyWxy原作,git地址:https://github.com/melodyWx ...

  3. 蓝牙耳机没声音,用mac平台下的safari时

    买了个蓝牙耳机,发现用其他本地播放器或者chrome的时候有声音, 但是用safari的时候没有声音,最后发现是flash的问题. 只要清除浏览数据后刷新就有声音了

  4. windows系统一台电脑先后添加多个git账号

    概述 电脑上已经配置了github的ssh连接.现在又有一个不同的git账户,也就是要在一台电脑上配置两个git账号. 下面记录一下我配置的方法. 一.取消git全局配置 之前配置github的时候, ...

  5. python之带有参数的装饰器

    一个小demo def set_level(level_num): def set_func(func): def call_func(*args, **kwargs): if level_num = ...

  6. 部署https并自动续期

    1.其它步骤参考地址https://blog.csdn.net/achenyuan/article/details/79021340https://blog.csdn.net/Dancen/artic ...

  7. <深圳千锋学习>day01

    2019.11.11     深圳千锋H5前端学习笔记

  8. Vim 便捷 | 自己的Vim

    在.vimrc中安排自己的Vim set softtabstop=4 "将连续数量的空格视为一个制表符 set shiftwidth=4 "自动缩进所使用的空白数 set auto ...

  9. 给一个整数数组,找到两个数使得他们的和等于一个给定的数 target。

    描述 给一个整数数组,找到两个数使得他们的和等于一个给定的数 target. 你需要实现的函数twoSum需要返回这两个数的下标, 并且第一个下标小于第二个下标.注意这里下标的范围是 0 到 n-1. ...

  10. ActiveMQ消息队列从入门到实践(1)—JMS的概念和JMS消息模型

    1. 面向消息的中间件 1.1 什么是MOM 面向消息的中间件,Message Oriented Middleware,简称MOM,中文简称消息中间件,利用高效可靠的消息传递机制进行平台无关的数据交流 ...