django初始化
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初始化的更多相关文章
- Django 初始化数据库
django 初始化数据库 刷新数据库guoguos-MacBook-Pro:mysite guoguo$ python manage.py sqlflushBEGIN;SET FOREIGN_KEY ...
- django 初始化项目 和modelviewset 使用
django初始化项目 1.初始化项目结构└─shiyanlou_project │ .gitignore│ README.en.md # 英文│ README.md # 中文项目简介│├─celer ...
- Django初始化之基本操作
1.指定要安装的Django版本 C:\Users\win7>pip install Django==1.11.8 2.查看安装的django版本 C:\Users\win7>pip sh ...
- 【解决方案】django初始化执行python manage.py migrate命令后,除default数据库之外的其他数据库中的表没有创建出来
[问题原因]:django工程中存在多个应用,每个应用都指定了对应的数据库.执行python manage.py migrate命令时没有指定数据库,将只初始化默认的default数据库. [解决方案 ...
- django 初始化 介绍 生命周期
安装好django,配置模板,静态文件 # 创建Django工程 django-admin startproject [工程名称] mysite - mysite # 对整个程序进行配置 - init ...
- Django 初始化数据库遇到问题(python manage.py migrate)
问题:django.db.utils.InternalError: (1049, "Unknown database 'main'") 在Django 配置的数据库上 执行 cr ...
- python——django使用mysql数据库(二)
上一篇中,我们已经讲述了如何初始化一个django数据库,这一章就来讲讲在实际的项目中如何使用我们初始化的数据库呢? 如还未进行初始化数据库操作,请参考python——django使用mysql数据库 ...
- python学习笔记--Django入门0 安装dangjo
经过这几天的折腾,经历了Django的各种报错,翻译的内容虽然不错,但是与实际的版本有差别,会出现各种奇葩的错误.现在终于找到了解决方法:查看英文原版内容:http://djangobook.com/ ...
- Django学习之七:Django 中间件
目录 Django 中间件 自定义中间件 - - - 大体两种方式 将中间件移除 实例 中间件加载源码阅读 总结 Django 中间件 Tips: 更新日志: 2019.01.31 更新django中 ...
随机推荐
- 第二十九章 System V共享内存
共享内存数据结构 共享内存函数 shmget int shmget(key_t key, size_t size, int shmflg); 功能: 用于创建共享内存 参数: key : 这个共享内存 ...
- 大前端技术系列:TWA技术+TensorFlow.js => 集成原生和AI功能的app
大前端技术系列:TWA技术+TensorFlow.js => 集成原生和AI功能的app ( 本文内容为melodyWxy原作,git地址:https://github.com/melodyWx ...
- 蓝牙耳机没声音,用mac平台下的safari时
买了个蓝牙耳机,发现用其他本地播放器或者chrome的时候有声音, 但是用safari的时候没有声音,最后发现是flash的问题. 只要清除浏览数据后刷新就有声音了
- windows系统一台电脑先后添加多个git账号
概述 电脑上已经配置了github的ssh连接.现在又有一个不同的git账户,也就是要在一台电脑上配置两个git账号. 下面记录一下我配置的方法. 一.取消git全局配置 之前配置github的时候, ...
- python之带有参数的装饰器
一个小demo def set_level(level_num): def set_func(func): def call_func(*args, **kwargs): if level_num = ...
- 部署https并自动续期
1.其它步骤参考地址https://blog.csdn.net/achenyuan/article/details/79021340https://blog.csdn.net/Dancen/artic ...
- <深圳千锋学习>day01
2019.11.11 深圳千锋H5前端学习笔记
- Vim 便捷 | 自己的Vim
在.vimrc中安排自己的Vim set softtabstop=4 "将连续数量的空格视为一个制表符 set shiftwidth=4 "自动缩进所使用的空白数 set auto ...
- 给一个整数数组,找到两个数使得他们的和等于一个给定的数 target。
描述 给一个整数数组,找到两个数使得他们的和等于一个给定的数 target. 你需要实现的函数twoSum需要返回这两个数的下标, 并且第一个下标小于第二个下标.注意这里下标的范围是 0 到 n-1. ...
- ActiveMQ消息队列从入门到实践(1)—JMS的概念和JMS消息模型
1. 面向消息的中间件 1.1 什么是MOM 面向消息的中间件,Message Oriented Middleware,简称MOM,中文简称消息中间件,利用高效可靠的消息传递机制进行平台无关的数据交流 ...