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     全局设置文件
        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'

配置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配置MYSQLdb,django默认回去使用MYSQLdb
使用pymysql代替MYSQLdb
import pymysql
pymysql.install_as_MySQLdb()

DATABASES = {
    'default':{
        'ENGINE':'django.db.backends.mysql',
        '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中注释

返回数据

三板斧

from django.shortcuts import render,HttpResponse,redirect
HttpResponse  # 返回字符串的

render  # 返回html页面

redirect  # 重定向

request

获取post请求的数据
request.POST

获取get请求携带的数据
request.GET

request.POST.get('username') 默认只取数据列表最后一个元素
如果想要取出所有的元素,就必须使用getlist()
01-13 17:30
查看更多