pip install Django
相关网站资源:
Python下有许多款不同的 Web 框架。Django是重量级选手中最有代表性的一位。许多成功的网站和APP都基于Django。
Django是一个开放源代码的Web应用框架,由Python写成。
Django采用了MVC的软件设计模式,即模型M,视图V和控制器C。
Django安装以及下载手册,注意版本对应,安装后最后将Django安装路径添加到环境变量中,方便使用
1.开始创建项目:
django-admin.py startproject HelloWorld(这是项目名)
若是不成功,查看Django路径下文件
98,194 chardetect.exe 98,236 django-admin.exe 182 django-admin.py 98,203 easy_install-3.5.exe 98,203 easy_install.exe 98,175 pip.exe 98,175 pip3.5.exe 98,175 pip3.exe
可以看见django-admin.exe
所以可以直接使用exe文件来创建项目
django-admin startproject HelloWorld(这是项目名)
即可成功
查看文件夹HelloWorld ---项目的容器
manage.py --Django项目里面的工具,通过它可以调用django shell和数据库等 HelloWorld: --文件夹 __init__.py --一个空文件,告诉 Python 该目录是一个 Python 包 settings.py --包含了项目的默认设置,包括数据库信息,调试标志以及其他一些工作的变量。 urls.py --该 Django 项目的 URL 声明; 负责把URL模式映射到应用程序 wsgi.py --一个 WSGI 兼容的 Web 服务器的入口,以便运行你的项目
创建应用app(加入HelloWorld目录项目容器)真正网站中应用不止一个,像支付,聊天等多个应用在同一个项目
python manage.py startapp blog
发现在项目容器中多了blog文件夹,查看目录
./blog: total 5 -rwxrwx---+ 1 Administrators None 0 Mar 20 23:20 __init__.py -rwxrwx---+ 1 Administrators None 66 Mar 20 23:20 admin.py -rwxrwx---+ 1 Administrators None 88 Mar 20 23:20 apps.py drwxrwx---+ 1 Administrators None 0 Mar 20 23:20 migrations -rwxrwx---+ 1 Administrators None 60 Mar 20 23:20 models.py -rwxrwx---+ 1 Administrators None 63 Mar 20 23:20 tests.py -rwxrwx---+ 1 Administrators None 66 Mar 20 23:20 views.py
启动项目python manage.py runserver 8080出错
File "C:\Users\Administrator\AppData\Local\Programs\Python\Python35\lib\wsgiref\simple_server.py", line 36, in close self.status.split(' ',1)[0], self.bytes_sent AttributeError: 'NoneType' object has no attribute 'split'
解决方案:
在经过了一会儿的排查和网上资料的查找,发现Django对于python3以上并不是多么友好,于是就像在python2.7下使用,
奈何原来安装的python2.7版本中并不自带pip,想着单独安装pip,网上找了一堆方案...,最后决定安装python2.7.10吧,这款版本自带pip
开始卸载原有python2.7,在我的电脑,控制面板中可以找到python2.7,进行卸载。
安装以后,修改环境变量,使用pip命令安装Django
pip install django==1.8
删除原来项目,重新创建Django项目
django-admin startproject HelloWorld cd HelloWorld python manage.py startapp blog python manage.py runserver 8080
页面开始访问:注意现在浏览器默认https://127.0.0.1:8080
Django需要使用http://127.0.0.1:8080
成功访问:
另外:当初次使用post上传数据时:
<form action="/userinfo/" method="post"> <input name="name" type="text"/> <input name="age" type="text"/> <input type="submit"> </form>
后台:
user=[] def userinfo(request): user1={} if request.method == "POST": user1['name']=request.POST.get("name",None) user1['age']=request.POST.get("age",None) user.append(user1) return render(request, "post1.html",{"user_list":user})
有可能会出现下面情况:
Forbidden (403) CSRF verification failed. Request aborted. You are seeing this message because this site requires a CSRF cookie when submitting forms. This cookie is required for security reasons, to ensure that your browser is not being hijacked by third parties.
是由于为了防止跨站请求伪造的原因,在settings文件中可以修改:
MIDDLEWARE_CLASSES = ( 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.common.CommonMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.auth.middleware.SessionAuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware', 'django.middleware.security.SecurityMiddleware', )
将绿色注释即可
将项目布置到服务器上后,我们需要去配置属性
ALLOWED_HOSTS = ['*'] #设置允许所有的主机访问
然后在启动项目时
python manage.py runserver 0.0.0.0:8080 #也可以起到一样的效果
注意:在客户机上访问时,此时可能不能被正确的访问,是因为我们的ip被防火墙过滤掉了。
0.查看防火墙状态
/etc/init.d/iptables status
1.设置防火墙:
[root@redhat2 crazyeye]# /sbin/iptables -I INPUT -p tcp --dport 8080 -j ACCEPT #允许8080端口数据访问 [root@redhat2 crazyeye]# /etc/init.d/iptables save #保存配置 iptables: Saving firewall rules to /etc/sysconfig/iptables: [ OK ]
2.临时关闭防火墙
/etc/init.d/iptables stop
3.永久关闭,不随着我们下一次重启而启动
chkconfig --level 35 iptables off chkconfig iptables off
之后就可以正常的访问网站!!
推文:redhat linux/CentOS 6/7 如何关闭防火墙?