Django学习笔记

2017-10-15  本文已影响0人  renyangfar

django迁移无效问题解决

背景

mvt

shell 快捷键

安装

pip install Django==1.11.6

如需获取最新版,见Django安装

创建项目

django-admin.py startproject HelloWorld
python manage.py runserver 0.0.0.0:8000

浏览器打开网址:127.0.0.1:8000,如果正常打开网页,则运行正常。

使用Templates

<h1>hello world</h1>
from django.http import

模板标签

{% if condition %}
     ... display
{% endif %}
<ul>
{% for athlete in athlete_list %}
    <li>{{ athlete.name }}</li>
{% endfor %}
</ul>
{% ifequal section 'sitenews' %}
    <h1>Site News</h1>
{% else %}
    <h1>No News Here</h1>
{% endifequal %}
{# 这是一个注释 #}
{{ name|lower }}
{{ my_list|first|upper }}
{{ bio|truncatewords:"30" }}

其他过滤器
addslashes : 添加反斜杠到任何反斜杠、单引号或者双引号前面。
date : 按指定的格式字符串参数格式化 date 或者 datetime 对象,实例:
{{ pub_date|date:"F j, Y" }}
length : 返回变量的长度。

{% include "nav.html" %}

模板继承

其中hello.html继承了base.html。


<!DOCTYPE html>
<html>
<head>

<meta charset="utf-8">
<title>菜鸟教程(runoob.com)</title>
</head>
<body>
    <h1>Hello World!</h1>
    <p>菜鸟教程 Django 测试。</p>
    {% block mainbody %}
       <p>original</p>
    {% endblock %}
</body>
</html>

{% extends "base.html" %}
 
{% block mainbody %}<p>继承了 base.html 文件</p>
{% endblock %}

使用数据库MySQL


DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',  # 或者使用 mysql.connector.django
        'NAME': 'test', #数据库名
        'USER': 'test',  # 数据库用户名
        'PASSWORD': 'test123', #数据库密码
        'HOST':'localhost',
        'PORT':'3306',
    }
}
django-admin.py startapp TestModel

修改 TestModel/models.py 文件,代码如下:

# models.py
from django.db import models
 
class Test(models.Model):
    name = models.CharField(max_length=20)

定义name字段,数据类型则由CharField(相当于varchar)、DateField(相当于datetime), max_length 参数限定长度。

INSTALLED_APPS = (
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'TestModel',               # 添加此项
)
$ python manage.py makemigrations TestModel  # 让 Django 知道我们在我们的模型有一些变更
$ python manage.py migrate TestModel   # 创建表结构
python manage.py shell

查找信息:

Test.objects.all()

# -*- coding: utf-8 -*-
 
from django.http import HttpResponse
 
from TestModel.models import Test
 
# 数据库操作
def testdb(request):
    test1 = Test(name='runoob')
    test1.save()
    return HttpResponse("<p>数据添加成功!</p>")
from django.conf.urls import *
from . import view,testdb
 
urlpatterns = [
    url(r'^hello$', view.hello),
    url(r'^testdb$', testdb.testdb),
]
# -*- coding: utf-8 -*-
 
from django.http import HttpResponse
 
from TestModel.models import Test
 
# 数据库操作
def testdb(request):
    test1 = Test(name='runoob')
    test1.save()
    return HttpResponse("<p>数据添加成功!</p>")

python manage.py runserver 0.0.0.0:8000

打开浏览器访问:127.0.0.1:8000

创建用户组

python manage.py createsuperuser

在admin.py中注册user

admin.site.register('TestModel')

开启服务后地址后面加上/user即可进入后台管理页面,在管理页面可以可视化管理,十分方便。

部署

# test.py
def application(env, start_response):
    start_response('200 OK', [('Content-Type','text/html')])
    return [b"Hello World"] # python3
    #return ["Hello World"] # python2
uwsgi --http :8000 --wsgi-file test.py
上一篇 下一篇

猜你喜欢

热点阅读