这里是我自己整理的一些资料,大家不懂的可以相互学习呀。。。

Django 创建web服务器

Django ZZT 1892次浏览 已收录 0个评论

创建基础的web服务

    django-admin.py startproject project_nme //创建一个项目

    cd project_name

    py manage.py startapp app_name //创建一个app

    py manage.py makemigrations //创建迁移文件
    py manage.py migrate  //根据默认的数据库迁移文件生成数据库文件

    //创建超级用户
    py manage.py createsuperuser //根据下面提示输入用户名和密码,email可以为空
    //修改用户密码
    py manage.py changepassword username

路由创建

from django.conf.urls import url
from django.contrib import admin
from learn import views as learn_views  # new

urlpatterns = [
    url(r'^$', learn_views.index),  # new
    url(r'^admin/', admin.site.urls),
     url(r'^cal/(\d+)/(\d+)$',modelAppViews.cal,name='cal')//resetful风格传参,通过正则匹配的方式传递url参数
]

html模板的for循环标签:

变量 描述
forloop.counter 索引从 1 开始算
forloop.counter0 索引从 0 开始算
forloop.revcounter 索引从最大长度到 1
forloop.revcounter0 索引从最大长度到 0
forloop.first 当遍历的元素为第一项时为真
forloop.last 当遍历的元素为最后一项时为真
forloop.parentloop 获取上一层 for 循环的 forloop

模板获取url

# views.py
def add(request, a, b):
    c = int(a) + int(b)
    return HttpResponse(str(c))


# urls.py
urlpatterns = patterns('',
    url(r'^add/(\d+)/(\d+)/$', 'app.views.add', name='add'),
)


# template html
{% url 'add' 4 5 %}

模板中的逻辑运算:

比较符号前后必须有至少一个空格!

数据库(MYSQL)

安装扩展:

py -m pip install pymysql //安装pymysql,py3已经不支持mysqldb和mysqlclient了

配置:


DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'test', 'USER': 'root', 'PASSWORD': 'wdlinux.cn', 'HOST': 'localhost', 'PORT': '3306', 'CHARSET': 'utf8' } }

model 配置

model基础配置

class Author(models.Model):
    name = models.CharField(max_length=50)
    qq = models.CharField(max_length=10)
    addr = models.TextField()
    email = models.EmailField()

    def __str__(self):
        return self.name

添加数据库中不存在的字段

class Person(models.Model):
    first_name = models.CharField(max_length=50)
    last_name = models.CharField(max_length=50)

    def my_property(self):
        return self.first_name + ' ' + self.last_name
    my_property.short_description = "Full name of the person"

    full_name = property(my_property)

数据迁移

导出数据

python manage.py dumpdata [appname] > appname_data.json

导入数据

python manage.py loaddata blog_dump.json

缓存(Cache)

文件缓存
setting.py

CACHES = {
    'default': {
        'BACKEND': 'django.core.cache.backends.filebased.FileBasedCache',
        'LOCATION': '/var/tmp/django_cache',
        'TIMEOUT': 600,
        'OPTIONS': {
            'MAX_ENTRIES': 1000
        }
    }
}

views.py

from django.shortcuts import render
from django.views.decorators.cache import cache_page

@cache_page(60 * 15) # 秒数,这里指缓存 15 分钟,不直接写900是为了提高可读性
def index(request):
    # 读取数据库等 并渲染到网页
    return render(request, 'index.html', {'queryset':queryset})

乐趣公园 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明Django 创建web服务器
喜欢 (1)

文章评论已关闭!