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中 ...
随机推荐
- 记 Maven 本地仓库埋坑之依赖包为何不能用
记一次 Maven 本地仓库埋坑之 Verifying Availability 背景 某 Java 后端项目使用 maven 构建,因为某些原因,某些依赖库下载不了,直接找其它人索要了他电脑上的 m ...
- 基于 Jenkins Pipeline 自动化部署
最近在公司推行Docker Swarm集群的过程中,需要用到Jenkins来做自动化部署,Jenkins实现自动化部署有很多种方案,可以直接在jenkins页面写Job,把一些操作和脚本都通过页面设置 ...
- MySQL系列:走进数据库,相关概念你都明白吗?
数据库,一个我们常常提到的名词,但是你有没有想过,它到底是什么意思呢,而我们常说的 MySQL.Oracle 等又到底指什么呢? 数据库 数据库(DataBase),简称 DB,是数据库是存储数据的集 ...
- T-SQL Part VIII: CROSS APPLY, OUTER APPLY
除了CROSS JOIN, INNER JOIN, OUTER JOIN之外,T-SQL还提供了CROSS APPLY和OUTER APPLY这两个较为另类的Set操作符. 首先来看CROSS APP ...
- [TCP] TCP协议族的学习 and TCP协议
1.TCP协议族这个大家庭,每个协议在OSI5层模型中所处的位子 其中,网络层里的 ICMP = Internet Control Message Protocol,即因特网控制报文协议, IGMP ...
- [LC]876题 Middle of the Linked List (链表的中间结点)(链表)
①中文题目 给定一个带有头结点 head 的非空单链表,返回链表的中间结点. 如果有两个中间结点,则返回第二个中间结点. 示例 1: 输入:[1,2,3,4,5]输出:此列表中的结点 3 (序列化形式 ...
- 通过 position:fixed 实现底部导航
通过 position:fixed 实现底部导航 HTML <div id="footer">页脚</div> CSS #footer { clear: b ...
- nyoj 92-图像有用区域 (BFS)
92-图像有用区域 内存限制:64MB 时间限制:3000ms 特判: No 通过数:4 提交数:12 难度:4 题目描述: “ACKing”同学以前做一个图像处理的项目时,遇到了一个问题,他需要摘取 ...
- 【计算机网络】TCP基础知识详解
1. TCP概念相关 [!NOTE] TCP(Transmission Control Protocol),又叫传输控制协议. TCP协议是面向连接的,可靠的,基于字节流的传输协议.在基于 TCP 进 ...
- Ubuntu 16.04 安装Docker
1 更改apt源,更改前先对sources.list文件进行备分 ccskun@test:~$ sudo cp /etc/apt/sources.list /etc/apt/sources.list. ...