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中 ...
随机推荐
- [git]将代码上传到github
1.右键你的项目,如果你之前安装git成功的话,右键会出现两个新选项,分别为Git Gui Here,Git Bash Here,这里我们选择Git Bash Here,进入如下界面 2.接下来输入如 ...
- [考试反思]1109csp-s模拟测试106:撞词
(撞哈希了用了模拟测试28的词,所以这次就叫撞词吧) 蓝色的0... 蓝色的0... 都该联赛了还能CE呢... 考试结束前15分钟左右,期望得分300 然后对拍发现T2伪了写了一个能拿90分的垃圾随 ...
- [考试反思]0910csp-s模拟测试42:追求
显而易见的暴力骗分. T1想到了bitset但是发现MLE后弃了,部分分都没拿. T2想到正解贪心打暴力过不了大样例弃了. T3牛逼题暴力. 考场没什么大失误,还可以. 不要轻易放弃每一个思路,可能再 ...
- [考试反思]0718 NOIP模拟测试5
最后一个是我...rank#11 rank#1和rank#2被外校大佬包揽了. 啊...考的太烂说话底气不足... 我考场上在干些什么啊!!! 20分钟“切”掉T2,又27分钟“切”掉T1 切什么切, ...
- NOIP模拟 1
NOIP模拟1,到现在时间已经比较长了.. 那天是6.14,今天7.18了 //然鹅我看着最前边缺失的模拟1,还是终于忍不住把它补上,为了保持顺序2345重新发布了一遍.. # 用 户 名 ...
- css3 input placeholder颜色修改方法
css3 input placeholder颜色修改方法<pre> input::-webkit-input-placeholder { /* placeholder颜色 */ color ...
- PHP Swoole-Demo TCP服务端简单实现
tcp 服务端简单demo与client . <?php /** * author : rookiejin <mrjnamei@gmail.com> * createTime : 2 ...
- nyoj 243-交换输出 (swap)
243-交换输出 内存限制:64MB 时间限制:3000ms 特判: No 通过数:16 提交数:39 难度:1 题目描述: 输入n(n<100)个数,找出其中最小的数,将它与最前面的数交换后输 ...
- ArcGIS API For Javascript :如何解决跨网不能正常获取依赖项的问题?
一.前言 政企项目通常会在自组网以及保密网运行,有些单位甚至会有两个物理隔绝的网络存在.通常情况下我们会在两个网络中部署相同的地图服务和依赖项.但是也有其中一个网络密级很高没有服务器资源,不能单独部署 ...
- flex一些属性
// 改变主轴的方向 flex-direction: column; // display:flex的子元素无法设置宽度 // 子元素有个flex-shrink属性,表示在父元素宽度不够的情况下是否自 ...