Python Django

开发环境:Unbuntu12.04
首先确保你已经安装了Python

安装Django
官方介绍了号几种安装方法 https://django-chinese-docs-14.readthedocs.org/en/latest/topics/install.html
我选择了下面的安装方法:
安装完毕以后,看是否安装成功了。。
好,没有问题。。。

下面开始web开发吧。。
新建一个项目mysite
如果出现这样的错误怎么办??

我们去看下/usr/bin/django-admin.py

这文件找/usr/local/bin/python 来解析的。。。
看下我的pyhton都在哪里。。
在/usr/bin/下。。。

相信大家都明白了。。下面我们来修改下django-admin.py
#!/usr/local/bin/python
改为: #!/usr/bin/python
然后我们再执行 django-admin.py startproject mysites

看下mysites的目录结构


好吧。我们先让这个项目跑起来看看。。。
./manage.py runserver
 
浏览器,访问 http://127.0.0.1:8000/
 
关于数据库的链接:
我用的是Mysql
数据库的配置在settings.py

相信大家都会看明白了。。
ENGINE 是设置你要使用的数据库类型。例如使用mysql:django.db.backends.mysql
PORT是设置数据库的端口,如果没有改动默认端口的话。这里可以忽略不填写。

填写完后,需要运行
./manage.py syncdb
完成同步数据库和项目
如果出现下面的错误

执行下面的命令进行修复下:
sudo apt-get install python-mysqldb
再次执行    ./manage.py syncdb

好,没有问题了。。。。

创建app


/***************************************关于表单form提交时候报错的问题********************************************/
在使用Django提交Post表单时遇到如下错误:
 解决方法包括了上面的四点。
一般而言,这是由于Django的CSRF的机制还没有正确使用。

下面是我具体实现的一种解决方法:
1、在表单Form里加上{% csrf_token %}
 
2、 在Settings里的MIDDLEWARE_CLASSES增加配置:(默认是存在的)
     'django.middleware.csrf.CsrfViewMiddleware',
 

3、在控制form视图的函数,添加context_instance=RequestContext(request)

到此,就可以解决问题了,希望对大家有用。。

/*********************************************多视图模版共用相同变量的问题*************************************************/
有时候,我们在设计的时候,需要在多个视图模版里面共用到一个相同的变量,django怎么解决这个问题的。
例如,多个页面需要显示登录名 {{username}}
1、最笨的办法当然是,给每个视图模版传输一个变量了。
#view.py
from django.short_cuts import render_to_response  
render_to_response('admin.html',{'username':'kaizhu_Qin'})  
几个视图模版还好,但是如果视图模版有10多个,。。你就会崩溃了。代码冗余、重复。
2、RequestConntext需要接受request和processors参数,processors是context处理器的列表集合。
默认的context处理器 的列表集合
TEMPLATE_CONTEXT_PROCESSORS = (
           'django.contrib.auth.context_processors.auth',
           'django.core.context_processors.debug', 
           'django.core.context_processors.i18n', 
           'django.core.context_processors.media',
)
默认情况下,Django采用参数TEMPLATE_CONTEXT_PROCESSORS指定默认处理器,意味着只要是调用的RequestContext,那么默认处理器中返回的对象都就将存储在context中。
我们可以在app下写一个processor.py
#processor.py
def username(request):
return {' username':'kaizhu'}
注意:template_context_processors默认在settings文件中是没有的,而是设置在global_settings.py文件中,如果想加上自己的context处理器,就必须在自己的settings.py中显示的指出参数。
#setting.py
TEMPLATE_CONTEXT_PROCESSORS = (
           'django.contrib.auth.context_processors.auth',#django1.4  or after
           'django.core.context_processors.auth',  #django1.4 before
           'django.core.context_processors.debug', 
           'django.core.context_processors.i18n', 
           'django.core.context_processors.media',
           'myapp.processor. username',
)
或者:
from django.conf import global_settings
TEMPLATE_CONTEXT_PROCESSORS = global_settings.TEMPLATE_CONTEXT_PROCESSORS +("myapp.processor. username",)

这时,在view.py中只要把request参数传递给RquestContext就可以了。
#view.py
from django.short_cuts import render_to_response  
render_to_response('admin.html',{},context_instance=RequestContext(request))

那么在视图模版就可以通过{{username}} 就可以取到 kaizhu这个值了。。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值