Archive for django

安装管理应用程序。在你的 INSTALLED_APPS 的设置中加入 "django.contrib.admin" 。 如果你是一直照步骤做下来的,请确认 "django.contrib.sessions" , "django.contrib.auth" , 和 "django.contrib.contenttypes" 前面的注释已去掉,因为管理程序需要它们。请同时去掉所有 MIDDLEWARE_CLASSES 设置行中的注释,并清除 TEMPLATE_CONTEXT_PROCESSOR 设置,以便它可以重新使用缺省值。 运行 python manage.py syncdb 。这一步将生成管理界面使用的额外数据库表。 修改url.py文件,修改三个地方。   在应用目录下,新建文件admin.py,写django代码:

#-*- coding:utf-8 -*-

from django.contrib import admin
from plant.articles.models import Articles

class ArticlesAdmin(admin.ModelAdmin):
    pass
admin.site.register(Articles, ArticlesAdmin)

Articles为应用,这样你就可以在admin管理界面看到了

Continue

  使用步骤: 1、在settings文件中的INSTALLED_APPS中加入'django.contrib,comments',。 2、执行命令,manage.py syncdb,创建数据表。 3、urls.py中 (r'^comments/',include('django.contrib.comments.urls')),。 4、编辑templates文档。  

{% load comments %}
{% get_comment_list for articles.Articles a.id as comment_list %}
{% for comment in comment_list %}

评论人:{{comment.user.username}}{{comment.user.email}}|评论时间:{{comment.submit_date|date:"Y-m-d H:i"}} |ip地址:{{comment.ip_address}}

{{comment.comment}}
{% endfor %} {% get_comment_form for articles.Articles a.id as form %}
{% csrf_token %}{{form.object_pk}}{{form.content_type}}{{form.timestamp}}{{form.security_hash}}

{% load comments %} 是所有要用到comments组件的模板都需要加进入标签。 a.id是上面文章的id,没有规范写。 <input type="hidden" name="next" value="/articles/36/" />实现评论成功后的跳转,功能还没实现。 还有一个功能没实现,就是非登陆用户的评论限制。 具体参考官网“the built-in comment models”
<table> <tr> <th>作者:{{a.user.username}}</th><th>时间:{{a.datetime|date:'Y-m-d H:i'}}</th><th>IP:{{a.ip}}</th></tr> <tr><td><b>{{a.title}}</b></td></tr> <tr><td>{{a.content}}</td></tr> </table> {% load comments %} {% get_comment_list for articles.Articles a.id as comment_list %} {% for comment in comment_list %} <div> <p>评论人:<b>{{comment.user.username}}{{comment.user.email}}</b>|评论时间:{{comment.submit_date|date:"Y-m-d H:i"}}|ip地址:{{comment.ip_address}}</p> {{comment.comment}} </div> {% endfor %} {% get_comment_form for articles.Articles a.id as form %} <form action={% comment_form_target %} method="post"> {% csrf_token %}{{form.object_pk}}{{form.content_type}}{{form.timestamp}}{{form.security_hash}} <p><label for="id_comment">评论:</label></p> <p><textarea name="comment"></textarea></p> <input type="hidden" name="next" value="/articles/36/" /> <p><input name="post" value="发表" type="submit" /></p> </form>

Continue

这两个的安装都是直接命令安装, apt-get install libapache2-mod-wsgi 查看mod_wsgi是否安装成功,找文件/usr/lib/apache2/modules/mod_wsgi.so 编辑/etc/apache2/httpd.conf,加入: #  LoadModule wsgi_module /usr/lib/apache2/modules/mod_wsgi.so   WSGIScriptAlias / "/data/web/test/mysite/apache/django.wsgi"     <Directory "/data/web/mysite">   Order Deny,Allow   Allow from all   </Directory> #那句不用写,加入以后会提示“已经载入mod_wsgi” [warn] module wsgi_module is already loaded, skipping 以后还要再配置一次,现在做个测试。主要参照官网。 Alias /robots.txt /usr/local/wsgi/static/robots.txt Alias /favicon.ico /usr/local/wsgi/static/favicon.ico AliasMatch ^/([^/]*\.css) /usr/local/wsgi/static/styles/$1 Alias /media/ /usr/local/wsgi/media/ Alias /static/ /usr/local/wsgi/static/ <Directory /usr/local/wsgi/static> Order deny,allow Allow from all </Directory> <Directory /usr/local/wsgi/media> Order deny,allow Allow from all </Directory> WSGIScriptAlias / /usr/local/wsgi/scripts/django.wsgi <Directory /usr/local/wsgi/scripts> Order allow,deny Allow from all </Directory>   /data/web/test/mysite/apache/django.wsgi

# -*- coding: utf-8 -*-
import os
import sys

apache_configuration = os.path.dirname(__file__)
project = os.path.dirname(apache_configuration)
workspace = os.path.dirname(project)
sys.path.append(workspace)

os.environ['DJANGO_SETTINGS_MODULE'] = 'mysite.settings'

import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()
apache的日志文件存放在:/var/log/apache2/目录下。

Continue

安装MySQL-python-1.2.3, 整整一晚上,查了N多网页,安装了N多的包,多不正确 。其中最有问题的是提示的错误在putty中乱码了,艹。 command 'gcc' failed with exit status 1 就看到这一句,Google了一大堆没用的。 最后发现时缺少一个python-dev,apt-get install python-dev就解决问题了。 唉,错误提示也看不出,蒙着头撞了一晚上。躺被窝里哭吧

Continue

利用auth.views.password_change修改密码: urls.py urlpatterns = patterns('', url(r'passwdchange/$','django.contrib.auth.views.password_change',{'template_name':'users/passwdchange.html','post_change_redirect':'password_changed'}), ) post_change_redirect :密码修改后,URL重定向到 password_changed 开始没有写这个,只写了template_name。报错: Reverse for 'django.contrib.auth.views.password_change_done' with arguments '()' and keyword arguments '{}' not found. 看官网post_change_redirect 可以不写。 https://docs.djangoproject.com/en/1.3/topics/auth/#django.contrib.auth.views.password_change 找了几个网站,看后面都跟有,而且名字不同。纳闷了

Continue

找到的一点资料: \u4e00-\u9fa5 (中文) \x3130-\x318F (韩文) \xAC00-\xD7A3 (韩文) \u0800-\u4e00 (日文) \ufe30-\uffa0(全角字符) 找到一篇好文章:http://0x55aa.sinaapp.com/%E7%AE%97%E6%B3%95-%E7%BC%96%E7%A8%8B/212.html 没有系统的学习正则表达式,准备现学现用。 但是发现不匹配但就是找不到问题。 只含有汉字、数字、字母、下划线:

if not re.search(u'^[_a-zA-Z0-9\u4e00-\u9fa5]+$',username):
raise forms.ValidationError('用户名中只能包含')

Continue

利用Django表单实现 用户注册,检测数据库中是否有该用户。方法 查到的比较好的一种方法 get(**kwargs) 以下文描述的 "字段查询" 格式返回匹配查找参数的对象.如果没有找到符合给定参数的对象,会引发一个模块级的DoesNotExist 异常. 如果找到不止一个对象,引发AssertionError 异常.

from django.core.exceptions import ObjectDoesNotExist
try:
#判断用户名是否被注册
    User.objects.get(username=username)
except ObjectDoesNotExist:
    return username
raise forms.ValidationError('改用户名已存在')

Continue

CSRF verification failed. Request aborted.

Help Reason given for failure: CSRF token missing or incorrect. 解决方案: 在Settings里的MIDDLEWARE_CLASSES增加配置: 'django.middleware.csrf.CsrfViewMiddleware', 'django.middleware.csrf.CsrfResponseMiddleware',

Continue

1、MySQL数据库 net start mysql 启动mysql服务 net stop mysql 停止mysql服务 2、Django 启动自带的web服务 python manage.py runserver 创建项目 django‐admin.py startproject mysite 创建应用 python manage.py startapp books 以正确Django配置启用Python交互解释器 python manage.py shell 检查模型的语法和逻辑是否正确  python manage.py validate 生成 CREATE TABLE 语句(books 是app的名称) python manage.py sqlall books 提交SQL语句至数据库的方法  python manage.py syncdb  (syncdb 并 不能将模型的修改或删除同步到数据库)  

Continue