基于django搭建网站

news/2024/7/8 2:04:33 标签: python
Django 是由Python开发的一个免费的开源web框架,可以用于快速搭建网站。
ps:web框架,也叫web应用框架,提供数据库接口,标准样板,会话管理等来支持网站,网络应用,服务的开发。
安装django
官网https://www.djangoproject.com/download/
下载安装包Django-1.9.6.tar.gz
tar zxvf Django-1.9.6.tar.gz
cd Django-1.9.6
python setup.py install
也可以通过pip直接安装:pip install django==1.9.6
安装结束后进入Python交互界面查看成功与否
 
开始创建项目
[root@localhost soft]# django-admin startproject mypro
目录结构
[root@localhost soft]# cd mypro/
[root@localhost mypro]# ls
manage.py  mypro
[root@localhost mypro]# django-admin startapp app01
[root@localhost mypro]# ls
app01  manage.py  mypro
django主要文件:
manage.py:配置管理的接口
urls.py:网址入口,关联到对应的views.py中的一个函数,访问网址就对应一个函数。
settings.py:配置文件
admin.py:配置后台管理界面
views.py:处理用户发出的请求,从urls.py中对应过来, 通过渲染templates中html文件将显示内容输出到网页。
models.py:定义类,每个类对应数据库中的一张表。
admin.py:配置后台管理界面
templates文件夹:存放网页模板
 
配置数据库(以mysql为例)
[root@localhost mypro]# cd mypro/
[root@localhost mypro]# ls
__init__.py  settings.py  urls.py  wsgi.py
编辑settings.py文件
 
加载app:
 
启动服务,可以指定端口,默认监听本机8000端口, 0.0.0.0代表监听所有网络接口和IP地址,即其他电脑都可以访问
[root@localhost mypro]# python manage.py runserver 0.0.0.0:8000  
Performing system checks...
 
System check identified no issues (0 silenced).
July 13, 2016 - 07:54:06
Django version 1.9.6, using settings 'mypro.settings'
Starting development server at http://0.0.0.0:8000/    
Quit the server with CONTROL-C.
 
 
 
设计model(数据库表)
[root@localhost app01]# vi models.py
class Server(models.Model):
    hostname=models.CharField(max_length=50,unique=True)
    ip=models.GenericIPAddressField(unique=True)
    passwd=models.CharField(max_length=20)
    cpu=models.CharField(max_length=20)
    disk=models.CharField(max_length=10)
    memory=models.CharField(max_length=10)
    os=models.CharField(max_length=20,default='CentOS 6.5',verbose_name='Operation System')
    def __str__(self):
        return self.hostname
将model注册到管理页面
[root@localhost app01]# vi admin.py
from django.contrib import admin
from app01.models import *
# Register your models here.
class Server_show(admin.ModelAdmin):
    search_fields=('hostname',) # 搜索框
    list_display=("hostname","ip","passwd","cpu","disk","memory","os",) #显示的字段
admin.site.register(Server,Server_show)
同步数据库,在数据库中创建对应表 ORM 
[root@localhost mypro]# python manage.py makemigrations
Migrations for 'app01':
  0001_initial.py:
    - Create model Server
[root@localhost mypro]# python manage.py sqlmigrate app01 0001
BEGIN;
--
-- Create model Server
--
CREATE TABLE `app01_server` (`id` integer AUTO_INCREMENT NOT NULL PRIMARY KEY, `hostname` varchar(50) NOT NULL UNIQUE, `ip` char(39) NOT NULL UNIQUE, `passwd` varchar(20) NOT NULL, `cpu` varchar(20) NOT NULL, `disk` varchar(10) NOT NULL, `memory` varchar(10) NOT NULL, `os` varchar(20) NOT NULL);
 
COMMIT;
[root@localhost mypro]# python manage.py migrate
Operations to perform:
  Apply all migrations: admin, contenttypes, app01, auth, sessions
Running migrations:
  Rendering model states... DONE
  Applying app01.0001_initial... OK
此时同步结束,在数据库中会生成对应的表,表名为APP的名称+"_"+类名,会自动增加自增长的id字段,并且设为主键,即id=models.AutoField(primary_key=True).若自定义了主键,将不会自动添加id列
表结构与创建model时指定的一样
 
设置后台管理超级用户
[root@localhost mypro]# python manage.py createsuperuser
Username (leave blank to use 'root'): 
Email address: 
Password: 
Password (again): 
Superuser created successfully.
 
访问后台管理系统
http://10.26.1.254:8000/admin/
 
 
前端也可以显示
 
现在开始前端页面的编写
创建模板
[root@localhost mypro]# mkdir templates
在settings.py中定义模板路径
os.path.join(BASE_DIR, 'templates')
 
在templates下创建模板文件index.html
 
<!DOCTYPE html>
<html>
<body>
<p>
hello world!
</p>
</body>
</html>
 
创建视图函数
[root@localhost app01]# vi views.py
def index(request):
    return render(request,'index.html')
设置路由
[root@localhost mypro]# vi urls.py
 
这样,一个基于django的MTV模式的网站就搭建起来了。
 
 
 
 
 
 
 
 
 
 
 

转载于:https://www.cnblogs.com/williamwan/p/10388727.html


http://www.niftyadmin.cn/n/928491.html

相关文章

linux--VSS/RSS/PSS/USS

|--内存耗用&#xff1a;VSS/RSS/PSS/USS   VSS - Virtual Set Size 虚拟耗用内存&#xff08;包含共享库占用的内存&#xff09;   RSS - Resident Set Size 实际使用物理内存&#xff08;包含共享库占用的内存&#xff09;   PSS - Proportional Set Size 实际使用的物…

Stream Collectors - toUnmodifiableList、toUnmodifiableSet

public static <T> Collector<T,​?,​List<T>> toUnmodifiableList() public static <T> Collector<T,​?,​Set<T>> toUnmodifiableSet() 根据字面上的意思就是返回的ArrayList或HashSet结果是不可更改的。以上两个方法以toUnmodifi…

[翻译]Effective Java in Kotlin:2. 遇到多个构造器参数时,考虑用构建者

原文&#xff1a;Effective Java in Kotlin, item 2: Consider a builder when faced with many constructor parameters Reminder from the book 在Java中&#xff0c;通常的解决可选构造参数的方式是使用可伸缩构造器&#xff08;telescoping constructor&#xff09;。当使用…

glob - 形成路径名称

描述 (DESCRIPTION) 很久以前 在 UNIX V6 版 中 有一个 程序 /etc/glob 用来 展开 通配符模板. 不久以后 它 成为 shell 内建功能. 现在 人们 开发了 类似的 库函数 glob(3), 让 用户程序 实现 同样的 功能. 此 规则 遵循 (POSIX 1003.2, 3.13). 通配符匹配 (WILDCARD MATCHING…

Stream Collectors - toMap

public static <T,​K,​U> Collector<T,​?,​Map<K,​U>> toMap​(Function<? super T,​? extends K> keyMapper, Function<? super T,​? extends U> valueMapper) 简单理解就是把元素放到map中保存&#xff0c;map中的key和value都是…

学习笔记之三张图读懂机器学习 :基本概念、五大流派与九种常见算法 - 超级数学建模...

三张图读懂机器学习 &#xff1a;基本概念、五大流派与九种常见算法 - 超级数学建模 https://mp.weixin.qq.com/s/qiQz1FpP0FHzo-cXKTBb8w 机器学习正在进步&#xff0c;我们似乎正在不断接近我们心中的人工智能目标。语音识别、图像检测、机器翻译、风格迁移等技术已经在我们的…

C#中多线程中变量研究

今天在知乎上看到一个问题【为什么在同一进程中创建不同线程&#xff0c;但线程各自的变量无法在线程间互相访问&#xff1f;】。在多线程中&#xff0c;每个线程都是独立运行的&#xff0c;不同的线程有可能是同一段代码&#xff0c;但不会是同一作用域&#xff0c;所以不会共…

stream.allMatch

boolean allMatch​(Predicate<? super T> predicate) 字面意思就是全部匹配。作用就是定义一个函数参数对集合中全部元素进行计算&#xff0c;如果返回结果都是true那最终结果为true&#xff08;还有一种情况就是集合元素为空也返回true&#xff09;&#xff0c;如果有…